博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery中mouseleave和mouseout的区别详解
阅读量:7077 次
发布时间:2019-06-28

本文共 1791 字,大约阅读时间需要 5 分钟。

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

先看下使用mouseout的效果:

先看下使用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为:

$(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.php100.com/html/program/jquery/2013/0905/5891.html

转载于:https://www.cnblogs.com/fogwang/p/5666717.html

你可能感兴趣的文章
CentOS 6.0 安装配置rails 2.3.11 + redmine 1.2.1 笔记
查看>>
正则表达式
查看>>
python loss layer: does not need backward computation?
查看>>
Shadow Mapping With PCF
查看>>
Cracking the Coding Interview-ch11 | System Design and Memory Limits
查看>>
ionic ng-repeat 循环传值
查看>>
63. 搜索旋转排序数组 II
查看>>
Java学生管理系统
查看>>
IOS UISearchDisplayController 点击搜索出现黑条问题解决方案
查看>>
如何在应用图标上显示未读消息
查看>>
P2P下载为什么人越多越快呢??
查看>>
iOS--警告收录及科学快速的消除方法
查看>>
Export-XLSX PowerShell generate real Excel XLSX files without Excel and COM
查看>>
Oracle 修改表列属性
查看>>
facl权限(getfacl/setfacl)
查看>>
Homework Exercises 1
查看>>
bzoj 3670 [Noi2014]动物园
查看>>
bzoj 1009 [HNOI2008]GT考试——kmp+矩阵优化dp
查看>>
使用PHP输出中文JSON字符串
查看>>
用Curl测试POST
查看>>