鼠标悬浮事件与闪烁问题的处理

使用mouseenter/mouseleave代替mouseover/mouseout 

前组事件不绑定子元素;后者反之

推荐使用hover()+callback()

纯css伪类也能实现悬浮事件

Demo:

    
	
  		
  		
子元素
div元素


鼠标悬浮事件与闪烁问题的处理_第1张图片
鼠标指向这个按钮显示div;

鼠标悬浮事件与闪烁问题的处理_第2张图片

鼠标指向子元素时不调用mouseout;

鼠标悬浮事件与闪烁问题的处理_第3张图片

鼠标离开子元素时,mouseout 调用两次;

鼠标悬浮事件与闪烁问题的处理_第4张图片

鼠标先进入父对象再进入子对象,调用两次

得出结论:

    mouseover 事件会绑定本身以及子对象,当鼠标进入span时,先是div相应了事件,然后div消失引起span的mouseout,第二次相应了事件。

    当进入的位置位于span中,离开span会响应一次事件,导致div消失进而引起第二次响应

参考:

W3School在线测试工具 V2  http://www.w3school.com.cn/tiy/t.asp?f=jquery_event_mouseenter_mouseover

W3School在线测试工具 V2  http://www.w3school.com.cn/tiy/t.asp?f=jquery_event_mouseleave_mouseout



你可能感兴趣的:(前端)