我试图在单击文档时触发一个单击事件,除非单击了具有特定类名的 div。
我已尝试以下操作,但事件不会触发。
$(document).not(".class").click(function(){
//code
});
$(document).not("div.class").click(function(){
//code
});
$("body").not(".class").click(function(){
//code
});
有人知道我做错了什么吗?
谢谢
*更新
我尝试过以下方法
$(document).on("click", ":not(.class)", function(){
$('*:not(.class)',document).click(function(){
$(document).find(':not(.class)').click(function(){
$("body:not(.thisclass)").doAction();
但它并没有对我试图排除的带有 .class 的 div 做出任何区分。单击文档时会触发该事件。
这是我的 html 中的 div
<div class="pictureBox" id="pictureBox2"> <!--content--></div>
最佳答案
您将点击处理程序附加到 document
本身,因此它始终会触发(除非其他处理程序阻止它)。
$(document).on("click", ":not(.class)", function(){
//code
});
这仍然将事件处理程序附加到 document
上,但该处理程序仅响应其源与 :not(.class)
选择器匹配的点击:当事件 bubble up 到document
仅当源与选择器匹配时,jQuery 才会调用处理程序。
关于jquery - jquery 选择器上的 not() 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458364/