Вот пример. Это меню Google.Как поймать «закрытие» события click?
При нажатии на Зубчатые появляется меню (красный крест). Когда вы нажимаете нигде за пределами открытого меню (зеленый крест), меню исчезает. Вопрос в том, как поймать это второе событие закрытия (зеленый крест).
Простое меню.
var x = document.getElementById("star"); // this is id of the gear-wheel;
var y = document.getElementById("hiddenMenu"); // this is id of the menu with display = none;
x.onclick = function() {
y.style.display = "block";
}
Но как его закрыть? Я пробовал этот способ, используя тег «body»:
var bar = document.getElementsByTagName("body")[0];
bar.onclick = function() {
if (y.style.display == "block") {
y.style.display = "none";
}
}
Но меню закрывается сразу же после его открытия. Сначала он становится «блоком», когда нажимается «звезда». Но сразу же после этого становится «нет», так как тело также нажата. Как его решить? Действительно ли нужно писать код для «тела» для ловушки правильного целевого события?
Да, такое решение выглядит красиво, но «размытие» не может быть применено к Div элементы только что легко, unfurtunatly – Green
@Green почему нет? Размытие Ugh не работает на div. Хорошо, вам нужно что-то еще. Похоже, вам нужен обработчик кликов и проверка того, находится ли щелчок в div – Raynos