先看下使用mouseout的效果:
使用了mouseout事件↓ 第一行 第二行 第三行
第一行第二行第三行我们发现使用mouseout事件时,鼠标只要在下拉容器#list里一移动,就触发了hide(),其实是因为mouseout事件是会冒泡的,也就是事件可能被同时绑定到了该容器的子元素上,所以鼠标移出每个子元素时也都会触发我们的hide()。
从jQuery 1.3开始新增了2个mouse事件,mouseenter和mouseleave。与mouseout事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。
我们来看一下mouseleave事件的效果:
使用了mouseleave事件↓ 第一行 第二行 第三行
第一行第二行第三行mouseleave和mouseout事件各有用途,因为事件冒泡在某些时候是非常有用的
解决div mouseout事件冒泡的问题
解决的办法是,使用jquery的bind方法
如:现在有一个div对象需要监听他的鼠标事件
请选择排序方式↓ 按时间升序↑ 按时间降序↓ 按评论数量升序↑ 按评论数量降序↓ 按点击数升序↑ 按点击数降序↓
当鼠标移动到ID为searchSort的Div上时,显示下面的div。当鼠标移出下面的div时,隐藏div
JS为:
根据上述讲解,模拟实现下拉效果:
1.不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。
2.只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。
深圳市公司
集团管理层