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事件各有用途,因为事件冒泡在某些时候是非常有用的。但是当我们不需要冒泡的时候,确实也挺烦人的

posted @ 2015-11-30 14:56  王永东gg  阅读(114)  评论(0)    收藏  举报