我有一个(深度)嵌套的<div>
结构。使用Javascript,我想跟踪鼠标当前所在的元素(即,“拥有焦点”的元素),其中更深层次的嵌套元素具有优先权:
mouseover
、mouseout
、mouseenter
、mouseleave
和mousemove
的组合,但好像没有简单的解决方案能给我期望的行为。我能够在正确的上接收鼠标事件,但通常这些事件随后会被更高层次的
我有一个(深度)嵌套的<div>
结构。使用Javascript,我想跟踪鼠标当前所在的元素(即,“拥有焦点”的元素),其中更深层次的嵌套元素具有优先权:
mouseover
、mouseout
、mouseenter
、mouseleave
和mousemove
的组合,但好像没有简单的解决方案能给我期望的行为。我能够在正确的stopPropagation()
方法:
https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation
如果使用jQuery,请尝试在传递作为第一个参数的事件上调用stopPropagation()
。
http://api.jquery.com/event.stoppropagation/
$( "p" ).on('mouseover', function( event ) {
event.stopPropagation();
// Do something
});
event.target
。stopPropagation
是我缺失的拼图。:-)然而,它不适用于mouseenter
。我必须使用mouseover
才能使其正常工作。这里有一个fiddle来展示我的工作代码。也许你可以调整你的答案。事实上,如果你能解释为什么mouseover
在这里起作用,而mouseenter
则不行,那将非常有帮助。---干杯! - mhelvens evt.stopPropagation();
evt.cancelBubble = true;