无为清净楼资源网 Design By www.qnjia.com
本文详细的介绍了关于jQuery中mouseleave和mouseout的区别,分享给大家供大家参考,具体内容如下
很多人在使用jQuery实现鼠标悬停效果时,一般都会用到mouseover和mouseout这对事件。而在实现过程中,可能会出现一些不理想的状况。
先看下使用mouseout的效果:
<p>先看下使用mouseout的效果:</p> <div id="container" style="width: 300px;"> <div id="title" style="cursor: pointer; background: #ccc;">使用了mouseout事件↓</div> <div id="list" style="display: none; position: absolute; background:#fff; border: 1px solid #ccc; width: 298px;"> <div>第一行</div> <div>第二行</div> <div>第三行</div> </div> </div> <p><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事件的效果:
<div id="container2" style="width: 300px;"> <div id="title2" style="cursor: pointer; background: #ccc;">使用了mouseleave事件↓</div> <div id="list2" style="display: none; position: absolute; background:#fff; border: 1px solid #ccc; width: 298px;"> <div>第一行</div> <div>第二行</div> <div>第三行</div> </div> </div> <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> <p>
第一行第二行第三行mouseleave和mouseout事件各有用途,因为事件冒泡在某些时候是非常有用的
解决div mouseout事件冒泡的问题
解决的办法是,使用jquery的bind方法
如:现在有一个div对象需要监听他的鼠标事件
<div class="dpx2"><div class="dpx2_px" style="cursor:pointer;" id="searchSort">请选择排序方式↓</div> <div class="dpx2_px_xl" id="sortList" style="display:none;position:absolute;z-index:5;"> <div><a class="sortA">按时间升序↑</a></div> <div><a class="sortA">按时间降序↓</a></div> <div><a class="sortA">按评论数量升序↑</a></div> <div><a class="sortA">按评论数量降序↓</a></div> <div><a class="sortA">按点击数升序↑</a></div> <div><a class="sortA">按点击数降序↓</a></div> </div> </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(); }); });
根据上述讲解,模拟实现下拉效果:
1.不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。
2.只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。
<div class="sel_box"> <input type="button" value="请选择所属部门" id="sel_dept" /> <div class="hide" id="sel_dept_sh" style="display: none;"> <p> <font>深圳市公司 </font> </p> <p> <font>集团管理层 </font> </p> </div> </div> <script type="text/javascript"> $(".sel_box").click(function(event){ if(event.target.id == 'sel_dept'){ $("#sel_dept_sh").show(); //显示下拉框 $("#sel_dept_sh p font").click(function(){ $("#sel_dept").val(''); var text = $(this).text(); // alert(text); $("#sel_dept").val(text).css("color","#000"); $("#sel_dept_sh").hide(); }); }else{ $("#sel_dept_sh").hide(); } }); $(".sel_box").bind("mouseleave",function(){//用mouseleave就实现了模仿下拉框的效果 $(this).find(".hide").hide(); }); $(".sel_box").bind("mouseout",function(){//而mouseout则不行,什么时候都会触发 $(this).find(".hide").hide(); }); </script>
以上就是本文的全部内容,希望对大家的学习有所帮助。
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
更新日志
2024年11月20日
2024年11月20日
- 陈致逸《幻想乐园 Fantasyland》[320K/MP3][120.54MB]
- 席卷全球最红舞曲《火辣辣DJ[英文版]》[DTS-WAV]
- 群星-席卷全球最红舞曲《火辣辣DJ中文版》【WAV】
- 模拟之声慢刻CD《声入人心[年度发烧人声严选]》[低速原抓WAV+CUE]
- 陈致逸《幻想乐园 Fantasyland》[FLAC/分轨][554.27MB]
- Rhymist / LusciousBB《年轮》[320K/MP3][76.52MB]
- Rhymist / LusciousBB《年轮》[FLAC/分轨][410.02MB]
- 群星《歌手2024 第11期》[320K/MP3][93.88MB]
- 群星《歌手2024 第11期》[FLAC/分轨][496.06MB]
- 群星《国风超有戏 第7期》[320K/MP3][30.73MB]
- 模拟之声慢刻CD《试音天品8[女声低音炮]》[低速原抓WAV+CUE]
- 群星《抖烧第三季DSD》[低速原抓WAV+CUE]
- [ABC]蔡琴《百万琴歌[6N纯银镀膜]》[低速原抓WAV+CUE]
- 群星《国风超有戏 第7期》[FLAC/分轨][147.99MB]
- 群星《闪光的夏天 第3期》[320K/MP3][61.94MB]