您好我正在使用jquery *选择器和点击事件但它执行了很多次。 请查看以下代码段
$('*').on('click',function(e){
alert('hi');
});
如果我点击元素它的绝对路径是// html / body / div / div [2] / div / div / div [4] / div / ul
/ li / a / img我会高兴12次。
Supoose我点击另一个元素它的绝对路径是// html / body / div / div [2]我会 得到高清警报4次如何减少这个迭代,在e.target我想要的细节 被点击的元素。
提前致谢。
答案 0 :(得分:1)
请参阅类似的StackOverflow问题:Is it possible to have jQuery.click trigger on the top element only?
将e.stopPropagation()
添加到您的函数中,仅触发最顶层的元素。也就是说,如果您点击位于span
顶部的p
顶部的div
,则只有span
元素才会执行给定的功能。
您可以使用this
引用点击的对象。
$('*').on('click',function(e){
e.stopPropagation();
alert('hi');
});
答案 1 :(得分:0)
您可以使用e.stopPropagation
来阻止事件的传播:
$('*').on('click',function(e){
e.stopPropagation();
alert('hi');
});