问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

浅谈JQ中mouseover和mouseenter的区别

发布网友 发布时间:2022-04-19 20:11

我来回答

2个回答

懂视网 时间:2022-04-24 02:11

大家都熟悉mouseout 和 mouseover事件,就是鼠标移出和鼠标掠过事件,但是还是有部分人不知道在有子元素的情况下,同时还会鼠标的移出和掠过子元素的时候都会在中再一次触发。可以看个例子:

<html><head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=GBK" /> 
 
<title>mouseout子元素的触发</title> 
 
<script type="text/javascript" src="jquery.min.js"></script> 

<style>
 #list{width:100px;padding:10px;border:1px solid #ccc;background:#FFF;}

 #list ul{margin:0;padding:0;background:#333;}

 #list ul li{list-style:none;margin-bottom:5px;}

 #list ul li a:hover{background:#666;color:#FFF;}

 </style>

</head> 
 
<body> 
 
<a href="#" id="showList">鼠标请过来</a> 
 
<div id="list" style="display:none;"> 
 
 <ul> 
 
 <li><a href="#">选项一</a></li> 
 
 <li><a href="#">选项二</a></li> 
 
 <li><a href="#">选项三</a></li> 
 
 <li><a href="#">选项四</a></li> 
 
 <li><a href="#">选项五</a></li> 
 
 </ul> 
 
</div> 
 
</body> 
 
<script type="text/javascript"> 
 
 $("#showList").bind("mouseover",function(){ 
 
 $("#list").toggle('fast'); 
 
 }); 
 
 
 
 $("#list").bind("mouseout",function(){ 
 
 $(this).slideUp('fast'); 
 
 });
 
</script> 
 
</html>

这个例子原意是想打开一个列表框然后选择一个选项。鼠标移开列表框的时候关闭,但是事实情况是鼠标只要移上列表框就关闭。原因就是,列表绑定了一个mouseout事件,因为该列表有很多子元素,所以同意会触发ul,li,的鼠标掠过事件,也就是说,当鼠标移出ul,li的时候同样会触发mouseout事件。

解决的方法有多种,本文就是用jquery对应的两个事件,mouseenter 和 mouseleave,

只要把mouseout事件名改成mouseleave,就大功告成了。嘿嘿,简单!jquery都想到了。^_^,

Mouseleave :与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何子元素,同样会触发 mouseout 事件。例子

MouseEnter :与 mouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。如果鼠标指针穿过任何子元素,同样会触发 mouseover 事件。

热心网友 时间:2022-04-23 23:19

不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。对应mouseout
只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。对应mouseleave

这样的话,mouseenter子元素不会反复触发事件,否则在IE中经常有闪烁情况发生。

[html] view plain copy
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
x=0;
y=0;
$(document).ready(function(){
$("div.over").mouseover(function(){
$(".over span").text(x+=1);
});
$("div.enter").mouseenter(function(){
$(".enter span").text(y+=1);
});
});
</script>
</head>
<body>
<p>不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件。</p>
<p>只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。</p>
<div class="over" style="background-color:lightgray;padding:20px;width:40%;float:left">
<h2 style="background-color:white;">被触发的 Mouseover 事件:<span></span></h2>
</div>
<div class="enter" style="background-color:lightgray;padding:20px;width:40%;float:right">
<h2 style="background-color:white;">被触发的 Mouseenter 事件:<span></span></h2>
</div>
</body>
</html>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样让电脑连上网? 汉办承认IPA对外汉语教师资格证吗?我是渤大对外汉语专业学生,现在大二... 打印标签贴纸格式怎么设置 出轨离婚怎么分财产 夫妻一方出轨离婚,财产如何分配? iphone日期怎么改 iphone怎么改时间日期 告诉中医粉一个事实 电脑w7启动黑屏了win7系统黑屏怎么办 电脑刷win7后开机无电源启动笔记本新装win7系统后开机黑屏 昂达win7电脑黑屏启动Windows7系统时出现黑屏现象的原因和解决方案 工程结算书上应该盖什么章 劳动合同劳动用工登记机关需要盖章吗 企业会给暑假工盖公章吗? 公司项目经理用项目章给工人点工,盖章有法律效益吗? 有公章应加盖公章,没有公章的由用工负责人签字认可。 入职员工何时能够拿到公司盖章后的劳动合同? 施工图盖章有什么规定 请问开个打工的证明需要盖的是什么印章 超市门口负责盖章的员工名称 买房子盖章工地上的可以嘛? 员工签订劳务派遣合同 需要用工单位盖章吗 企业招工政审表有劳动局盖章属于合同工吗 政工部门盖章是什么章 人事局和劳动局盖章的合同制算正式工吗 工作证明盖章是什么章 需有劳动部门盖章的用工合同范本 私自加盖公章的工资条作为劳动证据违法吗 ps里面盖章的工具怎么调大 电厂灰场盖章的是什么工作性质? 是正式工么? 单位盖章的工作证明可以当做劳动关系证明么 jQuery mouseover事件 jquery中怎样给每一个li,添加mouseover事件? jQuery中hover与mouseover和mouseout的区别分析 jQuery 中的hover 和 mouseover 有什么区别 JQuery怎么才能去掉mouseover事件 jquery中鼠标移上和移开的动作是什么? jQuery实现鼠标事件(click mouseout mouseover)... jquery的mouseover事件为什么会闪 jquery 如何将当前mouseover所在元素传递赋值给其... jQuery如何区分触发mouseover事件的对象? 用JQ控制3个class一样的div鼠标移上去触发mouseove... jq怎样实现鼠标经过隐藏,离开显示div层 jQuery mouseover显示、mouseout隐藏问题 jquery 添加了mouseover mouseout和click事件怎样... jquery中,mouseover为什么不停的淡入淡出 jquery中鼠标移上和移开的动作是什么 个人小额贷款合同条款 小额贷款合同怎么写小额贷款合同怎么写 小额贷款合同怎么写 个人小额贷款的合同条款