如何编写jquery操作,以便在点击网页上的任何内容时除了某个div,然后查询执行一个函数?
答案 0 :(得分:5)
这是我的方式:
$(document).on("click", function(){
alert('foo');
});
$('#yourdiv').on("click", function(event){
event.stopPropagation();
})
我们的想法是,您将click事件放在整个页面上,然后点击您不想执行操作的元素,并防止它将click事件传播到文档点击事件。
如果您正在进行任何其他点击事件,它可能会互相影响,但您可能还有这个问题......
P.S。感谢Adrian的原始答案,这使我能够通过修改他的方式更快地开发出这个解决方案。 :)
答案 1 :(得分:2)
从jQuery 1.7开始,鼓励使用on()
:
$(document).on("click", ":not(#yourdiv)", function(){
//do your thing
//important: return false to avoid repeating the call for each DOM element in
//the hierarchy
return false;
})
请参阅更新的小提琴:http://jsfiddle.net/adrianonantua/v3N2T/8/
现在,有一个警告:在小提琴示例中,似乎点击了不想要的div。但实际上,click事件是由其父事件触发的。