首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多项setTimeout

多项setTimeout
EN

Stack Overflow用户
提问于 2015-01-15 00:40:27
回答 1查看 405关注 0票数 0

我尝试在包含ul和li的多个li项上设置一个setTimeout函数。幻灯片动画工作良好,但我希望在关闭slideUp之前有一个延迟。但这不管用。滑梯下降了,但没有再上升了。我认为这是因为我必须对每个li (索引)都有一个索引的setTimeout函数。但我不知道该怎么做。谁能给我指明正确的方向吗?谢谢!

代码语言:javascript
复制
var menu = $('#menu').find('li').has('ul'); 
var timer;
menu.on('mouseenter', function(){
  clearTimeout(timer);
  $(this).find('>ul').stop().slideDown();                       
});

menu.on('mouseleave', function(){
  clearTimeout(timer);
  timer = setTimeout(function() {
    $(this).find('>ul').stop().slideUp();
  },1000);
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-15 01:16:30

问题是你有多个lis,它们会抵消那些打开的。您需要将超时时间分配给每个li,或者需要查看它们是否是另一个打开的li来关闭它。

代码语言:javascript
复制
var lis = $('#menu').find('li').has('ul');

lis.on('mouseenter', function(){
    var li = $(this);
    var timer = li.data("timer");    
    clearTimeout(timer);
    $(this).find('>ul').stop().slideDown();                         
});

lis.on('mouseleave', function(){
    var li = $(this);
    var timer = setTimeout(function() {
            $(this).find('>ul').stop().slideUp();
        },1000);
    li.data("timer", timer);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27955059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档