Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Déramond <julien.deramond@orange.com>2022-06-08 22:56:18 +0300
committerJulien Déramond <julien.deramond@orange.com>2022-06-08 22:56:33 +0300
commit7ebb190a2d3c9c0c23bfa15b9d3255d7ec913e9f (patch)
tree6ff5a331123ee2af7a490228ac576205689cf906
parent6fd203060baeb2c49bd4bb3f83a2837762802f95 (diff)
Add missing things in `hide` method of dropdownv4-dev-dropdown-hide-method
-rw-r--r--js/src/dropdown.js10
-rw-r--r--js/tests/unit/dropdown.js10
2 files changed, 13 insertions, 7 deletions
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index 1403fd9ee2..1dfd6f39af 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 db6c893fb2..766be0a90b 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 = [
'<div class="dropdown">',
- ' <button href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>',
+ ' <button href="#" class="btn dropdown-toggle" data-toggle="dropdown" aria-expanded="true">Dropdown</button>',
' <div class="dropdown-menu">',
' <a class="dropdown-item" href="#">Secondary link</a>',
' </div>',
@@ -1600,9 +1600,8 @@ $(function () {
$(fixtureHtml).appendTo('#qunit-fixture')
var $dropdownEl = $('.dropdown')
- var dropdown = $('[data-toggle="dropdown"]')
- .bootstrapDropdown()
- .data('bs.dropdown')
+ var $btnDropdown = $('[data-toggle="dropdown"]').bootstrapDropdown()
+ var dropdown = $btnDropdown.data('bs.dropdown')
var spyPopper
$dropdownEl.one('shown.bs.dropdown', function () {
@@ -1612,6 +1611,7 @@ $(function () {
$dropdownEl.one('hidden.bs.dropdown', function () {
assert.true(spyPopper.called)
+ assert.strictEqual($btnDropdown.attr('aria-expanded'), 'false', 'aria-expanded is set to string "false" on hide')
done()
})