javascript - 如何阻止 Mouseleave 触发出现在目标上方的元素?

标签 javascript jquery jquery-ui-datepicker mouseleave

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/

相关文章:

javascript - 验证表单时如何检查特殊字符

jquery - div 在另一个 div 之上滑动

mysql - 如何在 jquery-datepicker 中显示出生日期

javascript - Kendo Datepicker 中的关闭事件多次触发

php - 具有自定义日期范围的 jQuery 日历

javascript - 使用 Javascript 生成 SASL MD5 摘要以通过 Active Directory 进行身份验证?

javascript - 如何在 aurelia-froala-editor 中更改语言环境?

javascript - 从不同框架内的服务访问 AngularJS 服务

javascript - jQuery 进行更改时出现 "onkeypress"滞后

Jquery当存在多个类时选择一个类