私のページには、クリックイベントに応答するさまざまな要素がたくさんあります。グローバルフラグに基づいてすべてのクリックをブロックする必要がある場合があります。一元化された場所でこのチェックを行う方法はありますか?
現在、各イベントでフラグを確認しています。例:
var canClick = false; // Global flag
// Sample click event:
$("#someDiv").click(function(){
if(!canClick) return;
// Some stuff ...
});
私がやりたいのは、他の要素の 前にすべてのクリックイベントをトラップする1つの要素を持つことです。
ドキュメントで試してみましたが、これらのイベントは他のクリックイベントの後にのみ発生します。
例:
$("#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クリック関数を上書きして、そこに小さなチェックを入れることができますか?
私がここで見逃している明らかな何かがありますか?
助けてくれてありがとう。