设置超时功能和每个功能冲突

Posted

技术标签:

【中文标题】设置超时功能和每个功能冲突【英文标题】:Set Timeout function and each function *** 【发布时间】:2012-01-06 22:13:32 【问题描述】:

以下代码应触发搜索结果中的每个元素的鼠标 enter() 和 mouseleave(),每个元素之间的间隔为 2000 毫秒。超时没有效果,直接结束了。

$(window).load(function()
    var delayslide = 0;
    $(".featuredslider a").each(function()
        var current = $(this).index();
        window.setTimeout(function()
            $(".featuredslider a").mouseleave();
            $('.featuredslider a:eq(' + current + ')').mouseenter();
            delayslide += 2000;
        , delayslide);
    );

);

【问题讨论】:

【参考方案1】:

给你:

var elems = $( 'a', '.featuredslider' ).get(),
    i = -1;

(function loop() 
    $( elems[i] ).mouseleave();
    i += 1;
    $( elems[i] ).mouseenter();

    if ( i < elems.length )  setTimeout( loop, 2000 ); 
)();

现场演示: http://jsfiddle.net/G9VNj/

【讨论】:

你不应该真正命名匿名函数,此外,还有更好的方法......让我把它写出来...... @ivans Oho,Zagrepčanin。 :) 这是一个草率的组织代码。我发现有更好的方法来做到这一点。 @Shawn31313 什么是马虎?请告诉我如何改进它。

以上是关于设置超时功能和每个功能冲突的主要内容,如果未能解决你的问题,请参考以下文章

使用javascript在循环内设置超时

无法为功能区和 hystrix 设置超时

如何在android下采用相对时间,实现超时等待的功能

MySQL数据库连接重试功能和连接超时功能的DB连接Python实现

如何给 Python 的 MySQLDB 模块增加 Timeout 超时功能

局域网下的客户端调用服务接口超时的问题总结