jQuery的mouseleave似乎触发了任何覆盖元素。我不希望这些覆盖元素被视为我的目标区域“外部”。这是一个使用jQueryUI中的datepicker的简单示例:
$("#datepicker").datepicker({});
$(".wrapper")
.mouseenter(function(){
$("#status").html("Status: Mouse is INSIDE");
})
.mouseleave(function(){
$("#status").html("Status: Mouse is OUTSIDE");
});
请注意,当鼠标位于datepicker上时会触发mouseleave。什么是一个很好的解决方案,以防止这个datepicker示例?什么是我可能添加的任何未来元素的良好解决方案?
答案 0 :(得分:4)
您可以使用relatedTarget
事件的属性来过滤处理程序:
.mouseleave(function(e){
if($(e.relatedTarget).closest('.ui-datepicker').length) return;
$("#status").html("Status: Mouse is OUTSIDE");
});