jQuery 的 mouseleave 似乎在任何覆盖元素上触发。我不希望这些覆盖元素被视为“在我的目标区域之外”。这是一个使用 jQueryUI 中的日期选择器的简单示例:
http://jsfiddle.net/6Wm9L/
$("#datepicker").datepicker({});
$(".wrapper")
.mouseenter(function(){
$("#status").html("Status: Mouse is INSIDE");
})
.mouseleave(function(){
$("#status").html("Status: Mouse is OUTSIDE");
});
请注意,当鼠标悬停在日期选择器上时会触发 mouseleave。对于这个日期选择器示例,防止这种情况的好解决方案是什么?对于我可能添加的涵盖目标的任何 future 元素,什么是好的解决方案?
最佳答案
您可以使用 relatedTarget
事件的属性来过滤您的处理程序:
.mouseleave(function(e){
if($(e.relatedTarget).closest('.ui-datepicker').length) return;
$("#status").html("Status: Mouse is OUTSIDE");
});
--DEMO--
关于javascript - 如何阻止 Mouseleave 触发出现在目标上方的元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24269944/