jquery - jquery 选择器上的 not() 方法不起作用

标签 jquery events jquery-selectors

我试图在单击文档时触发一个单击事件,除非单击了具有特定类名的 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 本身,因此它始终会触发(除非其他处理程序阻止它)。

您应该做的是使用 delegated.on 形式:

$(document).on("click", ":not(.class)", function(){
      //code
});

这仍然将事件处理程序附加到 document 上,但该处理程序仅响应其源与 :not(.class) 选择器匹配的点击:当事件 bubble updocument 仅当源与选择器匹配时,jQuery 才会调用处理程序。

关于jquery - jquery 选择器上的 not() 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458364/

相关文章:

jquery - 使用 json_encode 的人口选择选项

c++ - 选择和移动事件在 QGraphicsScene 中不起作用

java - 如何处理 Java 事件队列

jQuery onclick 选择器不起作用

jQuery 选择器,其中文本 = 某个值

javascript - 通过 javascript 使用 Enter 键添加新行

javascript - 使用 json 数据制作数字动画

c# - 如何在 VB.Net 中声明 lambda 事件处理程序?

jquery - 为什么我的 jquery not 选择器不起作用

Jquery toggleClass 没有像我预期的那样工作