如何使用全局选择器响应除一个元素之外的所有点击事件?

2024-03-03

如果我有一个按钮:

<button id="button1">

通常我会写:

$("#button1").click(function ()
{    
    //do something
}

但我想定义一个响应所有点击事件的函数except当有人点击这个按钮时。

是否有一个选择器可以让我定位文档中除button1?


你可以使用:不是选择器 http://docs.jquery.com/Selectors/not:

$('button:not(#button1)').click(function(){
  //Do something
});

上面的选择器将匹配所有按钮元素,除了 id = "button1" 的元素。

如果你真的想选择body标签下的所有元素,你可以使用"All" http://docs.jquery.com/Selectors/all (*) 选择器,并且还排除带有:不是(选择器) http://docs.jquery.com/Selectors/not or .not(表达式) http://docs.jquery.com/Traversing/not#expr:

$('body *:not(#button1)').click(function(){
  //Do something
});

Or

$('body *').not('#button1').click(function(){
  //Do something
});

如果这样做,可能会遇到一些事件冒泡或传播问题,您可以使用event.stopPropagation http://docs.jquery.com/Events/jQuery.Event#event.stopPropagation.28.29功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用全局选择器响应除一个元素之外的所有点击事件? 的相关文章