You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.7 KiB
29 lines
1.7 KiB
!function($){"use strict";var Tab=function(element){this.element=$(element)}
|
|
Tab.prototype={constructor:Tab,show:function(){var $this=this.element,$ul=$this.closest('ul:not(.dropdown-menu)'),selector=$this.attr('data-target'),previous,$target,e
|
|
if(!selector){selector=$this.attr('href')
|
|
selector=selector&&selector.replace(/.*(?=#[^\s]*$)/,'')}
|
|
if($this.parent('li').hasClass('active'))return
|
|
previous=$ul.find('.active:last a')[0]
|
|
e=$.Event('show',{relatedTarget:previous})
|
|
$this.trigger(e)
|
|
if(e.isDefaultPrevented())return
|
|
$target=$(selector)
|
|
this.activate($this.parent('li'),$ul)
|
|
this.activate($target,$target.parent(),function(){$this.trigger({type:'shown',relatedTarget:previous})})},activate:function(element,container,callback){var $active=container.find('> .active'),transition=callback&&$.support.transition&&$active.hasClass('fade')
|
|
function next(){$active.removeClass('active').find('> .dropdown-menu > .active').removeClass('active')
|
|
element.addClass('active')
|
|
if(transition){element[0].offsetWidth
|
|
element.addClass('in')}else{element.removeClass('fade')}
|
|
if(element.parent('.dropdown-menu')){element.closest('li.dropdown').addClass('active')}
|
|
callback&&callback()}
|
|
transition?$active.one($.support.transition.end,next):next()
|
|
$active.removeClass('in')}}
|
|
var old=$.fn.tab
|
|
$.fn.tab=function(option){return this.each(function(){var $this=$(this),data=$this.data('tab')
|
|
if(!data)$this.data('tab',(data=new Tab(this)))
|
|
if(typeof option=='string')data[option]()})}
|
|
$.fn.tab.Constructor=Tab
|
|
$.fn.tab.noConflict=function(){$.fn.tab=old
|
|
return this}
|
|
$(document).on('click.tab.data-api','[data-toggle="tab"], [data-toggle="pill"]',function(e){e.preventDefault()
|
|
$(this).tab('show')})}(window.jQuery); |