仅针对某些类元素的jQuery stopPropagation
我有一些具有悬停效果的仅针对某些类元素的jQuery stopPropagation,jquery,events,Jquery,Events,我有一些具有悬停效果的.myClass元素,我一次只希望其中一个元素使用悬停事件,因此我使用: event.stopPropagation() 但是我还有.myOtherClass,也需要它来使用悬停事件。当我使用event.stopPropagation()时,它会完全阻止事件 如何阻止.myClass上的事件传播,但不要阻止.myOtherClass上的事件传播 [编辑] -单击(悬停或其他)时,我只需要一个警报,告知单击了哪个类(峰值一)我假设您同时选择了两类元素,类似于$(“.myCl
.myClass
元素,我一次只希望其中一个元素使用悬停事件,因此我使用:
event.stopPropagation()
但是我还有.myOtherClass
,也需要它来使用悬停事件。当我使用event.stopPropagation()
时,它会完全阻止事件
如何阻止.myClass
上的事件传播,但不要阻止.myOtherClass
上的事件传播
[编辑]
-单击(悬停或其他)时,我只需要
一个警报,告知单击了哪个类(峰值一)我假设您同时选择了两类元素,类似于$(“.myClass.myOtherClass”)
如果是这样,您可以在If
语句中使用has()
,仅对所需的类停止播放
例如:
$(".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");
});
如果您将代码发布到事件中,这会很有帮助。stopPropagation
所做的是:它防止事件在处理程序调用的元素的祖先上触发stopPropagation
。它不会阻止对其他元素触发悬停事件。