diff options
| author | fat <[email protected]> | 2013-05-16 17:18:15 -0700 |
|---|---|---|
| committer | fat <[email protected]> | 2013-05-16 17:18:15 -0700 |
| commit | 149ecd21bf7c56df897088d09ca309eb43a7dd9d (patch) | |
| tree | 9138ea6d99244c3abf114069482c8c397a0bc2cd /js/tab.js | |
| parent | 53bc93282fbeab3c1b779f1914ab040290668369 (diff) | |
| download | bootstrap-149ecd21bf7c56df897088d09ca309eb43a7dd9d.tar.xz bootstrap-149ecd21bf7c56df897088d09ca309eb43a7dd9d.zip | |
straight trash wang
Diffstat (limited to 'js/tab.js')
| -rw-r--r-- | js/tab.js | 139 |
1 files changed, 64 insertions, 75 deletions
@@ -18,105 +18,94 @@ * ======================================================== */ -!function ($) { +!function ($) { "use strict"; - "use strict"; // jshint ;_; - - - /* TAB CLASS DEFINITION - * ==================== */ + // 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 - } + Tab.prototype.show = function () { + var $this = this.element + var $ul = $this.closest('ul:not(.dropdown-menu)') + var selector = $this.attr('data-target') - if ( $this.parent('li').hasClass('active') ) return + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } - previous = $ul.find('.active:last a')[0] + if ($this.parent('li').hasClass('active')) return - e = $.Event('show', { - relatedTarget: previous - }) + var previous = $ul.find('.active:last a')[0] + var e = $.Event('bs:tab:show', { + relatedTarget: previous + }) - $this.trigger(e) + $this.trigger(e) - if (e.isDefaultPrevented()) return + if (e.isDefaultPrevented()) return - $target = $(selector) + var $target = $(selector) - this.activate($this.parent('li'), $ul) - this.activate($target, $target.parent(), function () { - $this.trigger({ - type: 'shown' - , relatedTarget: previous - }) + this.activate($this.parent('li'), $ul) + this.activate($target, $target.parent(), function () { + $this.trigger({ + type: 'bs:tab: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() + Tab.prototype.activate = function (element, container, callback) { + var $active = container.find('> .active') + var 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') } - transition ? - $active.one($.support.transition.end, next) : - next() + if (element.parent('.dropdown-menu')) { + element.closest('li.dropdown').addClass('active') + } - $active.removeClass('in') + callback && callback() } + + transition ? + $active.one($.support.transition.end, next) : + next() + + $active.removeClass('in') } - /* TAB PLUGIN DEFINITION - * ===================== */ + // 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))) + var data = $this.data('bs-tab') + + if (!data) $this.data('bs-tab', (data = new Tab(this))) if (typeof option == 'string') data[option]() }) } @@ -124,8 +113,8 @@ $.fn.tab.Constructor = Tab - /* TAB NO CONFLICT - * =============== */ + // TAB NO CONFLICT + // =============== $.fn.tab.noConflict = function () { $.fn.tab = old @@ -133,8 +122,8 @@ } - /* TAB DATA-API - * ============ */ + // TAB DATA-API + // ============ $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { e.preventDefault() |
