aboutsummaryrefslogtreecommitdiff
path: root/js/dist/dropdown.js
diff options
context:
space:
mode:
authorPierre Vanduynslager <[email protected]>2017-04-08 18:43:25 -0400
committerGitHub <[email protected]>2017-04-08 18:43:25 -0400
commitfe72daf2b34263d3cfc9bc77e9998cd22adfa34d (patch)
tree15dc9fc6fcb513362ba112d52ab01b568b423709 /js/dist/dropdown.js
parentf5cc59145642d78d7abbdf38fee1905786da5367 (diff)
parentfeb35b94a61c4d6016be8d1773a79a6bbe57d856 (diff)
downloadbootstrap-fe72daf2b34263d3cfc9bc77e9998cd22adfa34d.tar.xz
bootstrap-fe72daf2b34263d3cfc9bc77e9998cd22adfa34d.zip
Merge branch 'v4-dev' into dropdown-keyboard
Diffstat (limited to 'js/dist/dropdown.js')
-rw-r--r--js/dist/dropdown.js30
1 files changed, 16 insertions, 14 deletions
diff --git a/js/dist/dropdown.js b/js/dist/dropdown.js
index 6a1b227b1..0c81fe216 100644
--- a/js/dist/dropdown.js
+++ b/js/dist/dropdown.js
@@ -90,15 +90,6 @@ var Dropdown = function ($) {
return false;
}
- if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
-
- // if mobile we use a backdrop because click events don't delegate
- var dropdown = document.createElement('div');
- dropdown.className = ClassName.BACKDROP;
- $(dropdown).insertBefore(this);
- $(dropdown).on('click', Dropdown._clearMenus);
- }
-
var relatedTarget = {
relatedTarget: this
};
@@ -110,6 +101,16 @@ var Dropdown = function ($) {
return false;
}
+ // set the backdrop only if the dropdown menu will be opened
+ if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
+
+ // if mobile we use a backdrop because click events don't delegate
+ var dropdown = document.createElement('div');
+ dropdown.className = ClassName.BACKDROP;
+ $(dropdown).insertBefore(this);
+ $(dropdown).on('click', Dropdown._clearMenus);
+ }
+
this.focus();
this.setAttribute('aria-expanded', true);
@@ -156,11 +157,6 @@ var Dropdown = function ($) {
return;
}
- var backdrop = $(Selector.BACKDROP)[0];
- if (backdrop) {
- backdrop.parentNode.removeChild(backdrop);
- }
-
var toggles = $.makeArray($(Selector.DATA_TOGGLE));
for (var i = 0; i < toggles.length; i++) {
@@ -183,6 +179,12 @@ var Dropdown = function ($) {
continue;
}
+ // remove backdrop only if the dropdown menu will be hidden
+ var backdrop = $(parent).find(Selector.BACKDROP)[0];
+ if (backdrop) {
+ backdrop.parentNode.removeChild(backdrop);
+ }
+
toggles[i].setAttribute('aria-expanded', 'false');
$(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));