На моей странице много разных элементов, которые реагируют на события клика.Есть моменты, когда мне нужно заблокировать все клики на основе какого-либо глобального флага.Есть ли способ сделать эту проверку в централизованном месте?
Прямо сейчас в каждом событии я проверяю флаг, например:
var canClick = false; // Global flag
// Sample click event:
$("#someDiv").click(function(){
if(!canClick) return;
// Some stuff ...
});
Что я хотел бы сделатьесть один элемент, который перехватывает все события клика до любых других элементов.
Я пытался сделать это на документе , но эти события происходят только после других событий щелчка.
Пример:
$("#someDiv").click(function(){ console.log("someDiv click"); });
$(document).click(function(){ console.log("Document click"); });
// When I click on the someDiv element it prints:
> someDiv click
> Document click
Я также пытался поместитьполноэкранный div поверх всего и использующий его для захвата событий, но проблема заключалась в том, что ни один из кликов не распространялся через этот полноэкранный div.Кроме того, я не хочу полагаться на создание дополнительных элементов для захвата кликов, поскольку это выглядит немного странно.
Могу ли я перезаписать функцию щелчка jQuery, чтобы я мог поставить свою небольшую проверку там?
Есть ли что-то очевидное, что я здесь упускаю?
Спасибо за любую помощь.