0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-02-19 16:54:24 +01:00

Dropdowns: Skip .disabled instead of .divider on keydown event

Fixes #15147.
Closes #15520 by merging it.
This commit is contained in:
vsn4ik 2015-01-08 12:03:09 +03:00 committed by Heinrich Fenkart
parent 5debbec59f
commit b395f3526e
2 changed files with 22 additions and 1 deletions

View File

@ -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

View File

@ -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')
})
})