diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 6bae6a4b40..729b64732a 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -486,7 +486,7 @@ class Dropdown { if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { if (event.which === ESCAPE_KEYCODE) { - EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus') + SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus() } Dropdown._clearMenus() diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js index 63f83b3bb6..ab0fdbd444 100644 --- a/js/tests/unit/dropdown.js +++ b/js/tests/unit/dropdown.js @@ -765,6 +765,45 @@ $(function () { $triggerDropdown[0].dispatchEvent(new Event('click')) }) + QUnit.test('should close dropdown and set focus back to toggle when escape is pressed while focused on a dropdown item', function (assert) { + assert.expect(3) + var done = assert.async() + + var dropdownHTML = '