jQuery中mouseleave和mouseout的区别
在写项目的时候碰到了一个问题,就是我在为公司网站新首页改版时,需要使用鼠标移入移出事件,但是发现效果很不好,总是达不到效果,上网上搜索了一下,发现了问题。
很多人在使用jQuery实现鼠标悬停效果时,一般都会用到mouseover和mouseout这对事件。而在实现过程中,可能会出现一些不理想的状况。
先看下使用mouseout的效果:
使用了mouseout事件↓
我们发现使用mouseout事件时,鼠标只要在下拉容器#list里一移动,就触发了hide(),其实是因为mouseout事件是会冒泡的,也就是事件可能被同时绑定到了该容器的子元素上,所以鼠标移出每个子元素时也都会触发我们的hide()。
从jQuery 1.3开始新增了2个mouse事件,mouseenter和mouseleave。与mouseout事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。
我们来看一下mouseleave事件的效果:
使用了mouseleave事件↓
mouseleave和mouseout事件各有用途,因为事件冒泡在某些时候是非常有用的。但是当我们不需要冒泡的时候,确实也挺烦人的

浙公网安备 33010602011771号