vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js in twitter-bootstrap-rails-2.0 vs vendor/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js in twitter-bootstrap-rails-2.0.0

- old
+ new

@@ -25,28 +25,37 @@ /* DROPDOWN CLASS DEFINITION * ========================= */ var toggle = '[data-toggle="dropdown"]' , Dropdown = function ( element ) { - $(element).bind('click', this.toggle) + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) } Dropdown.prototype = { constructor: Dropdown , toggle: function ( e ) { var $this = $(this) - , selector = $this.attr('data-target') || $this.attr('href') - , $parent = $(selector) + , selector = $this.attr('data-target') + , $parent , isActive + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) $parent.length || ($parent = $this.parent()) + isActive = $parent.hasClass('open') clearMenus() - !isActive && $parent.toggleClass('open') return false } @@ -74,10 +83,10 @@ /* APPLY TO STANDARD DROPDOWN ELEMENTS * =================================== */ $(function () { - $(window).on('click.dropdown.data-api', clearMenus) + $('html').on('click.dropdown.data-api', clearMenus) $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) }) -}( window.jQuery ) \ No newline at end of file +}( window.jQuery )