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