diff options
| author | vsn4ik <[email protected]> | 2015-01-08 12:03:09 +0300 |
|---|---|---|
| committer | Heinrich Fenkart <[email protected]> | 2015-02-26 06:42:09 +0100 |
| commit | b395f3526e267c267c2d099b7cfc13325d873ee9 (patch) | |
| tree | 30164d0185fe1aa06b16280dc37b6a748c93b34f | |
| parent | 5debbec59f3d6c4d5c4feef9c53c0108b7b69208 (diff) | |
| download | bootstrap-b395f3526e267c267c2d099b7cfc13325d873ee9.tar.xz bootstrap-b395f3526e267c267c2d099b7cfc13325d873ee9.zip | |
Dropdowns: Skip `.disabled` instead of `.divider` on keydown event
Fixes #15147.
Closes #15520 by merging it.
| -rw-r--r-- | js/dropdown.js | 2 | ||||
| -rw-r--r-- | js/tests/unit/dropdown.js | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/js/dropdown.js b/js/dropdown.js index 200e1c67b..0ba3f87f5 100644 --- a/js/dropdown.js +++ b/js/dropdown.js @@ -72,7 +72,7 @@ return $this.trigger('click') } - var desc = ' li:not(.divider):visible a' + var desc = ' li:not(.disabled):visible a' var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc) if (!$items.length) return diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js index ec718b9e0..67b261744 100644 --- a/js/tests/unit/dropdown.js +++ b/js/tests/unit/dropdown.js @@ -314,4 +314,25 @@ $(function () { $dropdown.click() }) + QUnit.test('should skip disabled element when using keyboard navigation', function (assert) { + var dropdownHTML = '<ul class="tabs">' + + '<li class="dropdown">' + + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>' + + '<ul class="dropdown-menu" role="menu">' + + '<li class="disabled"><a href="#">Disabled link</a></li>' + + '<li><a href="#">Another link</a></li>' + + '</ul>' + + '</li>' + + '</ul>' + var $dropdown = $(dropdownHTML) + .appendTo('#qunit-fixture') + .find('[data-toggle="dropdown"]') + .bootstrapDropdown() + .click() + + $dropdown.trigger($.Event('keydown', { which: 40 })) + $dropdown.trigger($.Event('keydown', { which: 40 })) + + assert.ok(!$(document.activeElement).parent().is('.disabled'), '.disabled is not focused') + }) }) |
