mouseover/out和mouseenter/leave的区别及用法


今天在做下拉菜单练习时发现一些奇怪的问题,就是当用mouseover和mouseout时,当鼠标移动到下拉菜单时容易出现闪动,最后经过查资料发现

mouseover:无论鼠标指针穿过被选元素还是任何的子元素,都会触发mouseover事件,而mouseenter只有在鼠标指针穿过被选元素时,才会触发mouseenter事件;

mouseout : 无论鼠标指针离开被选元素还是任何子元素,都会触发mouseout事件,而mouseleave只有在鼠标指针离开被选元素的时候,才触发mouseleave事件;



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>滑动下拉菜单</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".topnav").mouseenter(function(){

$(this).find("ul").slideDown("slow");
}).mouseleave(function(){
$(this).find("ul").slideUp("slow");
})
})
</script>
<style type="text/css">
*{ margin:0; padding:0;}
body{ font-size:12px;}
.menu{ width:980px; margin:50px auto;}
.menu .topnav{ float:left; border-right:1px solid #fff; background:#FFE60C; width:140px;}
.menu .topnav ul{ display:none;}
.menu .topnav ul li{ border-bottom:1px solid #fff;}
.menu ul{ list-style:none; }
.menu li a{ color:#000; line-height:32px; padding:0 20px; width:100px; display:block; text-decoration:none;}
.menu li a:hover{color:#fff; text-decoration:none; background:#062723 url(images/slide-panel_03.png) 0 0 repeat-x;}

</style>
</head>

<body>
<div class="menu">
<ul class="level">
<li class="topnav"><a href="">do touch me</a>
<ul id="sub_01">
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">slideUp</a></li>
<li><a href="#">slideDown</a></li>
<li><a href="#">up and down</a></li>
<li><a href="#">animate</a></li>
</ul>
</li>
<li class="topnav"><a href="">do touch me</a>
<ul id="sub_01">
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">slideUp</a></li>
<li><a href="#">slideDown</a></li>
<li><a href="#">up and down</a></li>
<li><a href="#">animate</a></li>
</ul>
</li>
<li class="topnav"><a href="">do touch me</a>
<ul id="sub_01">
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">slideUp</a></li>
<li><a href="#">slideDown</a></li>
<li><a href="#">up and down</a></li>
<li><a href="#">animate</a></li>
</ul>
</li>
<li class="topnav"><a href="">do touch me</a>
<ul id="sub_01">
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">slideUp</a></li>
<li><a href="#">slideDown</a></li>
<li><a href="#">up and down</a></li>
<li><a href="#">animate</a></li>
</ul>
</li>
<li class="topnav"><a href="">do touch me</a>
<ul id="sub_01">
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">slideUp</a></li>
<li><a href="#">slideDown</a></li>
<li><a href="#">up and down</a></li>
<li><a href="#">animate</a></li>
</ul>
</li>
</ul>
</div>
</body>
</html>

当用mouseover和mouseout时,js代码如下



<script type="text/javascript">
$(document).ready(function(){
$(".topnav").mouseover(function(){

$(this).find("ul").slideDown("slow");
}).mouseout(function(){
$(this).find("ul").slideUp("slow");
})
})
</script>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值