1
0
Fork 0
mirror of https://github.com/twbs/bootstrap.git synced 2022-11-09 12:25:43 -05:00

Fixed bug in dropdown toggle where menu would only clear on the first drop down

This commit is contained in:
Erlend Halvorsen 2012-09-27 10:31:40 +02:00
parent 0540b63ab0
commit e9a648cd39
4 changed files with 53 additions and 10 deletions

View file

@ -99,9 +99,10 @@
} }
function clearMenus() { function clearMenus() {
getParent($(toggle)) $(toggle).each(function () {
.removeClass('open') getParent($(this)).removeClass("open")
})
} }
function getParent($this) { function getParent($this) {

View file

@ -674,9 +674,10 @@
} }
function clearMenus() { function clearMenus() {
getParent($(toggle)) $(toggle).each(function () {
.removeClass('open') getParent($(this)).removeClass("open")
})
} }
function getParent($this) { function getParent($this) {

View file

@ -99,9 +99,10 @@
} }
function clearMenus() { function clearMenus() {
getParent($(toggle)) $(toggle).each(function () {
.removeClass('open') getParent($(this)).removeClass("open")
})
} }
function getParent($this) { function getParent($this) {

View file

@ -7,7 +7,8 @@ $(function () {
}) })
test("should return element", function () { test("should return element", function () {
ok($(document.body).dropdown()[0] == document.body, 'document.body returned') var el = $("<div />")
ok(el.dropdown()[0] === el[0], 'same element returned')
}) })
test("should not open dropdown if target is disabled", function () { test("should not open dropdown if target is disabled", function () {
@ -102,4 +103,43 @@ $(function () {
dropdown.remove() dropdown.remove()
}) })
test("should remove open class if body clicked, with multiple drop downs", function () {
var dropdownHTML =
'<ul class="nav">'
+ ' <li><a href="#menu1">Menu 1</a></li>'
+ ' <li class="dropdown" id="testmenu">'
+ ' <a class="dropdown-toggle" data-toggle="dropdown" href="#testmenu">Test menu <b class="caret"></b></a>'
+ ' <ul class="dropdown-menu" role="menu">'
+ ' <li><a href="#sub1">Submenu 1</a></li>'
+ ' </ul>'
+ ' </li>'
+ '</ul>'
+ '<div class="btn-group">'
+ ' <button class="btn">Actions</button>'
+ ' <button class="btn dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>'
+ ' <ul class="dropdown-menu">'
+ ' <li><a href="#">Action 1</a></li>'
+ ' </ul>'
+ '</div>'
, dropdowns = $(dropdownHTML).appendTo('#qunit-fixture').find('[data-toggle="dropdown"]')
, first = dropdowns.first()
, last = dropdowns.last()
ok(dropdowns.length == 2, "Should be two dropdowns")
first.click()
ok(first.parents('.open').length == 1, 'open class added on click')
ok($('#qunit-fixture .open').length == 1, 'only one object is open')
$('body').click()
ok($("#qunit-fixture .open").length === 0, 'open class removed')
last.click()
ok(last.parent('.open').length == 1, 'open class added on click')
ok($('#qunit-fixture .open').length == 1, 'only one object is open')
$('body').click()
ok($("#qunit-fixture .open").length === 0, 'open class removed')
$("#qunit-fixture").html("")
})
}) })