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 )