我想确认一下我的想法,以便我可以更好地理解我遇到的不一致。
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事件。