私の目標は、特定の条件が満たされない限り (ユーザーが入力要素に特定の単語を持っている場合)、すべてのクリック イベント (クリックされたときに HTML 内の要素の非表示/表示) を防ぐことです。
そのため、そのロジックをドキュメントまたは「html」のクリック ハンドラーに追加しようとしましたが、バブル アップのために他の要素のクリック ハンドラーが最初に起動しました。
だから私はそのロジックを「*」に添付しようとしましたが、今ではクリックハンドラが最初に起動しますが、stopPropagation、preventDefault を無視して false を返し、他の要素にも伝播します。
$(document).ready(function(){
$("*").click(function(event){
if ($("#user").val() !== "admin"){
console.log("1");
event.stopPropagation();
event.preventDefault();
return false;
}
});
$("#user").click(function(event){
console.log("2");
// do something
});
});
- false/stopPropagation が返されたためにそれ以上の伝播が発生しないはずなのに、「1」の後に「2」がコンソールに書き込まれるのはなぜですか?
- jQueryを使用して目標を達成するにはどうすればよいですか?
ありがとう!