From 7ebb190a2d3c9c0c23bfa15b9d3255d7ec913e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20D=C3=A9ramond?= Date: Wed, 8 Jun 2022 21:56:18 +0200 Subject: [PATCH] Add missing things in `hide` method of dropdown --- js/src/dropdown.js | 10 ++++++++-- js/tests/unit/dropdown.js | 10 +++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/js/src/dropdown.js b/js/src/dropdown.js index 1403fd9ee..1dfd6f39a 100644 --- a/js/src/dropdown.js +++ b/js/src/dropdown.js @@ -202,11 +202,18 @@ class Dropdown { return } + // If this is a touch-enabled device we remove the extra + // empty mouseover listeners we added for iOS support + if ('ontouchstart' in document.documentElement) { + $(document.body).children().off('mouseover', null, $.noop) + } + if (this._popper) { this._popper.destroy() } $(this._menu).toggleClass(CLASS_NAME_SHOW) + this._element.setAttribute('aria-expanded', false) $(parent) .toggleClass(CLASS_NAME_SHOW) .trigger($.Event(EVENT_HIDDEN, relatedTarget)) @@ -404,13 +411,12 @@ class Dropdown { $(document.body).children().off('mouseover', null, $.noop) } - toggles[i].setAttribute('aria-expanded', 'false') - if (context._popper) { context._popper.destroy() } $(dropdownMenu).removeClass(CLASS_NAME_SHOW) + toggles[i].setAttribute('aria-expanded', 'false') $(parent) .removeClass(CLASS_NAME_SHOW) .trigger($.Event(EVENT_HIDDEN, relatedTarget)) diff --git a/js/tests/unit/dropdown.js b/js/tests/unit/dropdown.js index db6c893fb..766be0a90 100644 --- a/js/tests/unit/dropdown.js +++ b/js/tests/unit/dropdown.js @@ -1585,12 +1585,12 @@ $(function () { }) QUnit.test('should hide a dropdown and destroy popper', function (assert) { - assert.expect(1) + assert.expect(2) var done = assert.async() var fixtureHtml = [ '