Merge pull request #14901 from huffman/fix/dropdown-close-on-click

Case 19999: Update edit.js to auto close dropdowns when clicking outside
This commit is contained in:
Shannon Romano 2019-02-14 14:48:03 -08:00 committed by GitHub
commit 453c081d9b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3015,6 +3015,13 @@ function toggleDropdown(event) {
element.setAttribute("dropped", isDropped !== "true" ? "true" : "false"); element.setAttribute("dropped", isDropped !== "true" ? "true" : "false");
} }
function closeAllDropdowns() {
elDropdowns = document.querySelectorAll("div.dropdown > dl");
for (let i = 0; i < elDropdowns.length; ++i) {
elDropdowns[i].setAttribute('dropped', 'false');
}
}
function setDropdownValue(event) { function setDropdownValue(event) {
let dt = event.target.parentNode.parentNode.previousSibling; let dt = event.target.parentNode.parentNode.previousSibling;
dt.value = event.target.getAttribute("value"); dt.value = event.target.getAttribute("value");
@ -3777,6 +3784,8 @@ function loaded() {
property.elInput = dt; property.elInput = dt;
dt.addEventListener('change', createEmitTextPropertyUpdateFunction(property)); dt.addEventListener('change', createEmitTextPropertyUpdateFunction(property));
} }
document.addEventListener('click', function(ev) { closeAllDropdowns() }, true);
elDropdowns = document.getElementsByTagName("select"); elDropdowns = document.getElementsByTagName("select");
while (elDropdowns.length > 0) { while (elDropdowns.length > 0) {