vendor/assets/javascripts/bootstrap/tabs.js in css-bootstrap-rails-0.0.6 vs vendor/assets/javascripts/bootstrap/tabs.js in css-bootstrap-rails-0.0.7
- old
+ new
@@ -1,7 +1,7 @@
/* ========================================================
- * bootstrap-tabs.js v1.4.0
+ * bootstrap-tabs.js v2.0.0
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2011 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,61 +20,85 @@
!function( $ ){
"use strict"
- function activate ( element, container ) {
- container
- .find('> .active')
- .removeClass('active')
- .find('> .dropdown-menu > .active')
- .removeClass('active')
+ /* TAB CLASS DEFINITION
+ * ==================== */
- element.addClass('active')
-
- if ( element.parent('.dropdown-menu') ) {
- element.closest('li.dropdown').addClass('active')
- }
+ var Tab = function ( element ) {
+ this.element = $(element)
}
- function tab( e ) {
- var $this = $(this)
- , $ul = $this.closest('ul:not(.dropdown-menu)')
- , href = $this.attr('href')
- , previous
- , $href
+ Tab.prototype = {
- if ( /^#\w+/.test(href) ) {
- e.preventDefault()
+ constructor: Tab
- if ( $this.parent('li').hasClass('active') ) {
- return
- }
+ , show: function () {
+ var $this = this.element
+ , $ul = $this.closest('ul:not(.dropdown-menu)')
+ , href = $this.attr('data-target') || $this.attr('href')
+ , previous
+ , $href
+ if ( $this.parent('li').hasClass('active') ) return
+
previous = $ul.find('.active a').last()[0]
+
+ $this.trigger({
+ type: 'show'
+ , relatedTarget: previous
+ })
+
$href = $(href)
- activate($this.parent('li'), $ul)
- activate($href, $href.parent())
+ this.activate($this.parent('li'), $ul)
+ this.activate($href, $href.parent())
$this.trigger({
- type: 'change'
+ type: 'shown'
, relatedTarget: previous
})
}
+
+ , activate: function ( element, container ) {
+ container
+ .find('> .active')
+ .removeClass('active')
+ .find('> .dropdown-menu > .active')
+ .removeClass('active')
+
+ element.addClass('active')
+
+ if ( element.parent('.dropdown-menu') ) {
+ element.closest('li.dropdown').addClass('active')
+ }
+ }
}
- /* TABS/PILLS PLUGIN DEFINITION
- * ============================ */
+ /* TAB PLUGIN DEFINITION
+ * ===================== */
- $.fn.tabs = $.fn.pills = function ( selector ) {
+ $.fn.tab = function (option) {
return this.each(function () {
- $(this).delegate(selector || '.tabs li > a, .pills > li > a', 'click', tab)
+ var $this = $(this)
+ , data = $this.data('tab')
+ if (!data) $this.data('tab', (data = new Tab(this)))
+ if (typeof option == 'string') data[option]()
})
}
+ $.fn.tab.Tab = Tab
+
+
+ /* TAB DATA-API
+ * ============ */
+
$(document).ready(function () {
- $('body').tabs('ul[data-tabs] li > a, ul[data-pills] > li > a')
+ $('body').delegate('[data-toggle="tab"], [data-toggle="pill"]', 'click.tab.data-api', function (e) {
+ e.preventDefault()
+ $(this).tab('show')
+ })
})
-}( window.jQuery || window.ender );
+}( window.jQuery || window.ender )
\ No newline at end of file