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.
		
		
		
		
		
			
		
			
				
					
					
						
							144 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
	
	
							144 lines
						
					
					
						
							3.4 KiB
						
					
					
				/* ======================================================== | 
						|
 * bootstrap-tab.js v2.3.2 | 
						|
 * http://twitter.github.com/bootstrap/javascript.html#tabs | 
						|
 * ======================================================== | 
						|
 * Copyright 2012 Twitter, Inc. | 
						|
 * | 
						|
 * Licensed under the Apache License, Version 2.0 (the "License"); | 
						|
 * you may not use this file except in compliance with the License. | 
						|
 * You may obtain a copy of the License at | 
						|
 * | 
						|
 * http://www.apache.org/licenses/LICENSE-2.0 | 
						|
 * | 
						|
 * Unless required by applicable law or agreed to in writing, software | 
						|
 * distributed under the License is distributed on an "AS IS" BASIS, | 
						|
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
						|
 * See the License for the specific language governing permissions and | 
						|
 * limitations under the License. | 
						|
 * ======================================================== */ | 
						|
 | 
						|
 | 
						|
!function ($) { | 
						|
 | 
						|
  "use strict"; // jshint ;_; | 
						|
 | 
						|
 | 
						|
 /* TAB CLASS DEFINITION | 
						|
  * ==================== */ | 
						|
 | 
						|
  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]*$)/, '') //strip for ie7 | 
						|
      } | 
						|
 | 
						|
      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 // reflow for transition | 
						|
          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') | 
						|
    } | 
						|
  } | 
						|
 | 
						|
 | 
						|
 /* TAB PLUGIN DEFINITION | 
						|
  * ===================== */ | 
						|
 | 
						|
  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 | 
						|
 | 
						|
 | 
						|
 /* TAB NO CONFLICT | 
						|
  * =============== */ | 
						|
 | 
						|
  $.fn.tab.noConflict = function () { | 
						|
    $.fn.tab = old | 
						|
    return this | 
						|
  } | 
						|
 | 
						|
 | 
						|
 /* TAB DATA-API | 
						|
  * ============ */ | 
						|
 | 
						|
  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { | 
						|
    e.preventDefault() | 
						|
    $(this).tab('show') | 
						|
  }) | 
						|
 | 
						|
}(window.jQuery); |