我有这段HTML:
<div id="parent">
<div id="child></div>
</div>
它看起来像这样:
---------------------------
- -
- #parent -
- -
- ---------- -
- - - -
- - #Child - -
- - - -
- ---------- -
- -
---------------------------
如何在jQuery中触发事件(例如,翻转)仅当悬停在#parent
上时才有效,但#child
上时无效
答案 0 :(得分:3)
您可以使用 event.stopPropagation()
类似的问题是jquery stop child triggering parent event
$("#parent").click(function(event){
//do something with parent
});
$("#child").click(function(event){
event.stopPropagation();
});
答案 1 :(得分:0)
我认为调查event.stopPropagation可以解决这个问题......
$("#someElement").click(function(event){
event.stopPropagation();
// do something
});
答案 2 :(得分:0)
如果来自事件处理程序的return false
,它将阻止事件冒泡到下一个祖先。
http://jsfiddle.net/jbabey/CV76D/
$('#outer').mouseover(function () {
$(this).addClass('green');
});
$('#inner').mouseover(function () {
return false;
});
答案 3 :(得分:0)
$('#parent').on('click',function(e){
if(e.target === document.getElementById('child')) return false;
// your code
})
然而,在我看来,最好采用.stopPropagation()
,正如其他人所说的那样