我想对我的想法进行一些确认,以便我可以更好地理解我所经历的不一致之处。
Mouseleave 和 mouseenter 应该和 mouseout 和 mouseover 一起使用。混合说 Mouseleave 和 mouseover 是不好的做法。
Mouseleave 最初仅适用于 IE jQuery 规范化 mouseleave / mouseenter 以便它可以跨浏览器使用
mouseleave 和 mouseout 之间的主要区别在于,当退出父级时触发 mouseleave(这是我想要的),而当在父级内的兄弟姐妹之间移动以及离开父级时触发 mouseout(这是我不想要的) )。
所以我的问题是行为不一致。使用 mouseleave 时,我发现脚本可能会也可能不会对绑定到事件的代码进行操作。
无论如何都叫我傻瓜。但是我观察到,如果我将鼠标移到父级的侧面或底部,就会触发 #send_To mouseleave。如果我将鼠标移出顶部,则不会。
所以我发现通过在其他地方设置焦点,这种行为被消除了。然而,它仍然不完全一致。并且在某些情况下,无论您以哪种方式退出,事件都不会被触发。再次请随意大笑,但我发现快速移动鼠标比缓慢移动鼠标更有可能触发事件。我想不出任何合理的合理理由,我只是在报告我的发现。
我想了解为什么我会看到这种对我没有任何意义的行为。
$("#send_To").bind("mouseleave",
function(event){
$("#send_To").css("display","none");
$("#message").focus(); // added this seems to improve behaviour
}
);
请有人建议。这是因为 jquery 正在规范化。是否有确保触发 mouseleave 事件的铸铁方法。