Commit e9a648cd authored by Erlend Halvorsen's avatar Erlend Halvorsen
Browse files

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

parent 0540b63a
Showing with 53 additions and 10 deletions
+53 -10
...@@ -99,9 +99,10 @@ ...@@ -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) {
......
...@@ -674,9 +674,10 @@ ...@@ -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) {
......
...@@ -99,9 +99,10 @@ ...@@ -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) {
......
...@@ -7,7 +7,8 @@ $(function () { ...@@ -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 () { ...@@ -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("")
})
}) })
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment