JQUERY延迟的问题

walunwine5 2012-11-09 09:23:26
大家好.麻烦帮忙看一下.这个JQ的代码怎么能把他收回的时间改成有延迟呢?刚搞了半天没搞出来效果.
---------------------分割线-----------------------
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery.navlevel2 = function(level1,dytime) {

jQuery(level1).mouseenter(function(){
varthis = jQuery(this);
delytime=setTimeout(function(){
varthis.find('ul').slideDown();
},dytime);

});
jQuery(level1).mouseleave(function(){
clearTimeout(delytime);
jQuery(this).find('ul').slideUp();
});

};
jQuery.navlevel2("li.mainlevel",200);
});
</script>



---------------------HTML-----------------------------
<div class="dropdown">
<ul id="headerloginnav">
<li class="mainlevel"><span class="showmenua" style="cursor:pointer;">我的账户</span>
<ul><li>aaaaaaaaa</li>
</ul>
</li>
</ul>
</div>




---------------------------CSS-------------------------
#headerloginnav { display:block;float:right;width:199px;}
#headerloginnav .jquery_out {float:left;line-height:32px;display:block; border-right:1px solid #fff; text-align:center; }
#headerloginnav .jquery_out .smile {padding-left:1em;}
#headerloginnav .jquery_inner {margin-left:16px;}
#headerloginnav .jquery { padding:0 2em;}
#headerloginnav .mainlevel { float:right; width:200px;/*IE6 only*/}


#headerloginnav .mainlevel ul {display:none; position:relative; float:left;}
#headerloginnav .mainlevel li { float:left;width:200px;/*IE6 only*/}



=======================
现在是鼠标离开就自动收回了,希望能改为有延迟效果的
先谢过了
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
walunwine5 2012-11-11
  • 打赏
  • 举报
回复
问题基本解决了.谢谢你了哈.
Go 旅城通票 2012-11-10
  • 打赏
  • 举报
回复
slideDown和slideUp都是有动画效果的,可能你的内容太短了,收缩时看不到效果,多增加内容查看效果或者增加动画时间
<ul>
<li>aaaaaaaaa</li><li>aaaaaaaaa</li><li>aaaaaaaaa</li>
</ul>

  jQuery(level1).mouseleave(function(){
  clearTimeout(delytime);
 jQuery(this).find('ul').slideUp(1000);//动画时间设置为1s,默认500ms
  });
  
};
walunwine5 2012-11-10
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
JavaScript code1234567891011121314151617181920jQuery(document).ready(function(){jQuery.navlevel2 = function(level1,dytime) { jQuery(level1).mouseenter(function(){ varthis = jQuery(this……
效果是和这个意思差不多.只是希望他弹出的时候没有延迟,只是在收回的时候有延迟.应该怎么写呢?谢谢啦!!!
Go 旅城通票 2012-11-09
  • 打赏
  • 举报
回复
jQuery(document).ready(function(){
jQuery.navlevel2 = function(level1,dytime) {

  jQuery(level1).mouseenter(function(){
  varthis = jQuery(this);
  delytime=setTimeout(function(){
varthis.find('ul').slideDown();
},dytime);

  });
  jQuery(level1).mouseleave(function(){
 clearTimeout(delytime);
///////这样??
delytime=setTimeout(function(){
 varthis.find('ul').slideUp();},dytime);
  });
  
};
  jQuery.navlevel2("li.mainlevel",200);
});

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧