我有一些带有悬停效果的.myClass
元素,我只希望其中一个元素一次使用悬停事件,所以我使用:
event.stopPropagation()
但是我也有.myOtherClass
并且需要它来使用那个悬停事件。当我使用event.stopPropagation()
时,它会阻止事件。
如何阻止.myClass
上的事件传播但是不阻止它.myOtherClass
?
[编辑]
http://jsfiddle.net/K92Fe/ - 点击(悬停或其他)我只需要one
提醒,告诉点击哪个班级(第一个)
答案 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");
});