jQuery *选择器执行很多次

时间:2014-04-04 16:44:55

标签: jquery

您好我正在使用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我想要的细节   被点击的元素。

提前致谢。

2 个答案:

答案 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');
});