jQuery stopPropagation仅适用于某类元素

时间:2012-11-26 10:52:35

标签: jquery events

我有一些带有悬停效果的.myClass元素,我只希望其中一个元素一次使用悬停事件,所以我使用:

event.stopPropagation()

但是我也有.myOtherClass并且需要它来使用那个悬停事件。当我使用event.stopPropagation()时,它会阻止事件。

如何阻止.myClass上的事件传播但是不阻止它.myOtherClass

[编辑]

http://jsfiddle.net/K92Fe/ - 点击(悬停或其他)我只需要one提醒,告诉点击哪个班级(第一个)

1 个答案:

答案 0 :(得分:1)

我假设你一次选择这两类元素,类似于$(".myClass, .myOtherClass")

如果是这样,您可以在has()语句中使用if来仅停止所需类的传播。

例如:

 $(".myClass, .myOtherClass").hover(function(e) {
      if ($(this).hasClass('myClass') {
          e.stopPropagation();
      };

      // hover logic
 });

<强>更新

关于你的小提琴,你只需要在每个事件处理程序中调用stopPropagation

$(".a").click(function(e){
    e.stopPropagation();
    alert("a clicked");
});
$(".b").click(function(e){
    e.stopPropagation();
    alert("b clicked");
});

Updated fiddle