首页 > Web开发 > 详细

jQuery hide()并不等于hide(0)

时间:2015-01-21 13:17:18      阅读:446      评论:0      收藏:0      [点我收藏+]

在实际使用中,经常用hide()函数来隐藏HTML元素,通常是没有什么问题的,但在一次做二级下拉菜单时遇到了问题,后来才发现有时候“speed”是不能省略的,即使“speed=0”,也就是说hide()在某些时候并不等于hide(0),下面拿实例来证明:

在做一个网站的二级下拉导航,设计了一个简单的jQuery,代码如下:

 

<script type="text/javascript">
jQuery(document).ready(function($) {
$(‘#nav li‘).hover(function() {
$(‘.sub‘, this).slideDown(300);
},function() {
$(‘.sub‘,this).hide();
});
});
</script>

 

测试了一下效果不错,但是发现如果鼠标运动太快的话,下拉菜单将无法隐藏,出现多个下拉菜单同时显示的情况,看来hide()失效了?后经多次修改发现,只要添加speed参数就能正常。
speed用来设定隐藏的速度,数值越小隐藏速度越快,当需要立即隐藏时,speed可以设置为0,在平时的应用中我们会将0省略掉,但是在这个例子中我 将speed取值500、300、50、0,程序均能取得满意效果,但是省掉speed后就出现失效的情况,说明在某些情况下speed是不能省略 的,hide()并不等于hide(0)!
当然在这个例子中也可以用slideUp()来代替hide(),在函数slideUp(speed)中参数speed是可以省略的。

 

<script type="text/javascript">
jQuery(document).ready(function($) {
$(‘#nav li‘).hover(function() {
$(‘.sub‘, this).slideDown(300);
},function() {
$(‘.sub‘,this).slideUp();
});
});
</script>

jQuery hide()并不等于hide(0)

原文:http://www.cnblogs.com/tnnyang/p/4238550.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!