From: Johann-S Date: Wed, 13 Feb 2019 14:13:53 +0000 (+0100) Subject: handle # selector for dropdown X-Git-Tag: v3.4.1~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ccfa57467c0e31ec2016d1be03c55184ce8a69d;p=thirdparty%2Fbootstrap.git handle # selector for dropdown --- 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 = [ + '' + ].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') + }) })