mouseenter(进入)、mouseleave、mouseover(覆盖)和mouseout是常用来判断鼠标移出和移入的事件句柄,虽然功能上差不多,但是细节却有不同的地方。
站在用户的角度思考问题,与客户深入沟通,找到芜湖县网站设计与芜湖县网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖芜湖县地区。
mouseover和mouseout在父元素和其子元素都可以触发,当鼠标穿过一个元素时,触发次数得依子元素数量而言。
mouseenter和mouseleave只在父元素触发,当鼠标穿过一个元素时,只会触发一次。
mouseover和mouseout比mouseenter和mouseleave先触发
因此一般mouseover和mouseout一起使用,mouseenter和mouseleave一起使用
你只要明白事件触发的顺序就知道原因了:当你鼠标移到div上的时候,触发mouseenter事件,点击的时候触发click事件,然后鼠标移走触发mouseleave事件。
例如:var
test=0;
$("#div1").delegate("a",
"mouseenter",
function()
{
test=1;
}).delegate("a",
"mouseleave",
function()
{
test=2;
});
$("#div1").delegate("a",
"click",
function()
{
test=3;
});
当你鼠标移动到div上点击之后鼠标再移走,最后触发的事件是mouseleave事件,此时test是2而不是三。你可以测试一下
mouseover() 鼠标进入(进入子元素也触发)
mouseout() 鼠标离开(离开子元素也触发)
mouseenter() 鼠标进入(进入子元素不触发)
mouseleave() 鼠标离开(离开子元素不触发)