Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohann-S <johann.servoire@gmail.com>2019-02-13 17:13:53 +0300
committerXhmikosR <xhmikosr@gmail.com>2019-02-13 18:55:38 +0300
commit2ccfa57467c0e31ec2016d1be03c55184ce8a69d (patch)
treed04a427b482b3afd5fe0f4da66c5d44b9f824ce0
parenta43077d3c3b3ef9b2afc426a573b40daeff788fe (diff)
handle # selector for dropdown
-rw-r--r--js/dropdown.js2
-rw-r--r--js/tests/unit/dropdown.js31
2 files changed, 32 insertions, 1 deletions
diff --git a/js/dropdown.js b/js/dropdown.js
index c4e5f65dfc..4ded850121 100644
--- a/js/dropdown.js
+++ b/js/dropdown.js
@@ -29,7 +29,7 @@
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
}
- var $parent = selector && $(document).find(selector)
+ var $parent = selector !== '#' ? $(document).find(selector) : null
return $parent && $parent.length ? $parent : $this.parent()
}
diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js
index 566b50ee7e..747bf60d9e 100644
--- a/js/tests/unit/dropdown.js
+++ b/js/tests/unit/dropdown.js
@@ -420,4 +420,35 @@ $(function () {
assert.ok($dropdown.parent('.btn-group').hasClass('open'), 'dropdown menu is open')
})
+
+ QUnit.test('should handle # in data-target', function (assert) {
+ assert.expect(1)
+ var done = assert.async()
+
+ var html = [
+ '<div class="dropdown">',
+ ' <a id="dLabel" data-target="#" href="http://example.com/" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">',
+ ' Dropdown trigger',
+ ' </a>',
+ ' <ul class="dropdown-menu" aria-labelledby="dLabel">',
+ ' <li><a href="/test">One</a></li>',
+ ' <li><a href="/test2">Two</a></li>',
+ ' </ul>',
+ '</div>'
+ ].join('')
+
+ var $dropdown = $(html)
+ .appendTo('#qunit-fixture')
+ .find('[data-toggle="dropdown"]')
+ .bootstrapDropdown()
+
+ $dropdown
+ .parent('.dropdown')
+ .on('shown.bs.dropdown', function () {
+ assert.ok($dropdown.parent('.dropdown').hasClass('open'), '"open" class added on click')
+ done()
+ })
+
+ $dropdown.trigger('click')
+ })
})