mouseover和mouseout的触发事件的探究
mouseover和mouseout事件引起的闪烁问题:
在js里面,当我们对一个html对象绑定了mouseover和mouseout事件时,会自动对其子对象绑定这两个事件,而有时候这个机制会给我们的实现带来不便,我们只希望在这个html对象上面实现mouseover和mouseout的绑定。
方法一:
在当mouseout的时候,设定一个延迟,例如1秒,然后在mouseover事件中对这个延迟进行清除,不让它调用应该执行的方法。
原因很简单,当鼠标在html对象中移动的时候,它是从一个子对象mouseout然后又mouseover了另一个子对象。
方法二:对所有子元素禁止事件冒泡
该方法存在一定的问题,如果目标对象子元素太多,需要操作每一个子元素进行事件绑定,太过啰嗦,这时候可以采用
1.调整html结构
2.
e.stopPropagation();
关于mouseover,mouseout快速移动造成的延迟问题:
使用mouseout来处理交互的时候,鼠标移开目标元素的速度快慢会影响mouseout事件的效果,什么问题?
浙公网安备 33010602011771号