У меня есть div, divDialog, который содержит простое диалоговое окно. Она начинает жизнь невидимой, но в определенный момент я делаю это видимым. На странице есть несколько других элементов (меню и т. Д.), Которые имеют прослушиватели событий для события click.
Мой вопрос: как только divDialog станет видимым, как я могу отключить все события щелчка для всего, кроме divDialog? Конечно, когда divDialog снова станет невидимым, я бы хотел восстановить нормальное поведение всех слушателей.
Я прочитал этот элегантный ответ , но он не отключает внешние щелчки и не является кроссплатформенным.
У меня есть подпрограмма, которая определяет, является ли узел предком другого:
function isAncestorOf(ancestor, descendant) {...}
... и это может быть необходимо в решении. Но у меня проблемы с прослушивателями событий, пузырями, захватом и кроссплатформенным поведением (кажется, не могу понять это для IE).
Я не использую jquery для этого; просто обычный старый javascript.
Есть предложения?