我的目标是防止所有点击事件(点击时隐藏/显示 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 实现我的目标?
谢谢!