Jquery / Javascript应用点击*但不是特定元素和他的孩子

时间:2016-08-06 16:26:06

标签: javascript jquery events selector

我正在寻找一种方法:



$('*:not(#specific)').on('click',function(e){
  //execute code
});

//or : 

$('*').not('#specific').on('click',function(e){
  //execute code
});




对DOM的每个元素应用操作,但不对我的特定div和子元素应用。

但这些似乎都不起作用。

基本上,我尝试建立一个像firebug这样的系统,可以将轮廓应用到over元素的最后一个子元素(这部分没问题)。但是在元素上保持轮廓选择并打开一个对话框。但是,当我们单击DOM元素时出现的对话框也是此DOM的一部分,它会生成无限循环的事件。我无法正确使用我的对话框。

非常感谢

3 个答案:

答案 0 :(得分:1)

请改为尝试:

$('body *').not('#specific, #specific *').on('click',function(e){
  //execute code
});

这将忽略#specific及其任何子女。

答案 1 :(得分:0)

您编写的第二个代码完全有效。您可以参考this回答。

它基本上是:not()选择器:

$('*').not('#specific').on('click',function(e){
     //execute code
});

答案 2 :(得分:0)

谢谢你们,



$('body *').not('#specific, #specific *').on('click',function(e){
  //execute code
});




完美无缺。

如果我必须在#specific上绑定一个点击,我必须在前面的代码中插入...



$('body #specific').on('click',function(e){
  //execute code...
});




这是对的吗?