aboutsummaryrefslogtreecommitdiff
path: root/js/tab.js
diff options
context:
space:
mode:
authorfat <[email protected]>2013-05-16 17:18:15 -0700
committerfat <[email protected]>2013-05-16 17:18:15 -0700
commit149ecd21bf7c56df897088d09ca309eb43a7dd9d (patch)
tree9138ea6d99244c3abf114069482c8c397a0bc2cd /js/tab.js
parent53bc93282fbeab3c1b779f1914ab040290668369 (diff)
downloadbootstrap-149ecd21bf7c56df897088d09ca309eb43a7dd9d.tar.xz
bootstrap-149ecd21bf7c56df897088d09ca309eb43a7dd9d.zip
straight trash wang
Diffstat (limited to 'js/tab.js')
-rw-r--r--js/tab.js139
1 files changed, 64 insertions, 75 deletions
diff --git a/js/tab.js b/js/tab.js
index 1df9f9098..80d6f2618 100644
--- a/js/tab.js
+++ b/js/tab.js
@@ -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()