【jquery选择器】jQuery中mouseleave和mouseout的区别详解

更新时间:2017-09-14    来源:jquery    手机版     字体:

【www.bbyears.com--jquery】

很多人在使用jQuery实现鼠标悬停效果时,一般都会用到mouseover和mouseout这对事件。而在实现过程中,可能会出现一些不理想的状况。

先看下使用mouseout的效果:

 代码如下

先看下使用mouseout的效果:



使用了mouseout事件↓

第一行
第二行
第三行


<script type="text/javascript">
jQuery(document).ready(function($) {
     $("#title").mouseover(function() {
         var offset = $(this).offset();
         $("#list").css({left: offset.left, top: offset.top+19}).show();
     });
     $("#container").mouseout(function() {
         $("#list").hide();
     });
 });
</script>


第一行第二行第三行我们发现使用mouseout事件时,鼠标只要在下拉容器#list里一移动,就触发了hide(),其实是因为mouseout事件是会冒泡的,也就是事件可能被同时绑定到了该容器的子元素上,所以鼠标移出每个子元素时也都会触发我们的hide()。

从jQuery 1.3开始新增了2个mouse事件,mouseenter和mouseleave。与mouseout事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。

我们来看一下mouseleave事件的效果:

 代码如下


使用了mouseleave事件↓

第一行
第二行
第三行


<script type="text/javascript">
jQuery(document).ready(function($) {
     $("#title2").mouseover(function() {
         var offset = $(this).offset();
         $("#list2").css({left: offset.left, top: offset.top+19}).show();
     });
     // 绑定mouseleave事件,效果很好
     $("#container2").mouseleave(function() {
         $("#list2").hide();
     });
 });
</script>

第一行第二行第三行mouseleave和mouseout事件各有用途,因为事件冒泡在某些时候是非常有用的

解决div mouseout事件冒泡的问题

解决的办法是,使用jquery的bind方法

 如:现在有一个div对象需要监听他的鼠标事件

 代码如下 请选择排序方式↓
           
                按时间升序↑
                按时间降序↓
                按评论数量升序↑
                按评论数量降序↓
                按点击数升序↑
                按点击数降序↓
           
       

当鼠标移动到ID为searchSort的Div上时,显示下面的div。当鼠标移出下面的div时,隐藏div

JS为:

 代码如下

 $(function(){
                 var sortList = $("#sortList");
            $("#searchSort").mouseover(function() {
                 var offset = $(this).offset();
                sortList.css("left", offset.left);
                sortList.css("top", offset.top+20);
                sortList.show();
            });
//关键的一句,绑定Div对象的mouseleave事件
            sortList.bind("mouseleave", function() {
                $(this).hide();
            });
        });

本文来源:http://www.bbyears.com/wangyezhizuo/35581.html

热门标签

更多>>

本类排行