【问题标题】:jQuery setInterval & setTimeoutjQuery setInterval 和 setTimeout
【发布时间】:2011-10-19 09:33:23
【问题描述】:

我的 jQuery 代码有一点问题。 我基本上有一个循环遍历一组图像的计时器,它位于 setInterval

当我点击右侧或左侧控制器时,它会停止间隔并根据用户点击而不是自动淡化图像。

$('a.right').click(function () {

    clearInterval(myInterval);
    setTimeout(function () { slideshow(); }, 9000);

    if (count < max - 1) {
        $('div.feature-image').eq(count).fadeOut('1000', function () {

            count++;
            $('div.feature-image').eq(count).fadeIn('1000');
            info++;
            $('div.img-info').html(info + ' of ' + max + ' | ');


        })

    }

我使用 setTimeout 等待 4 秒,然后继续循环。 虽然我不认为这是最优雅的方式,因为 Jquery 不知道停止 if 语句。有没有办法可以在 setTimeout 上阻止 if 语句执行其功能?

【问题讨论】:

标签: javascript jquery settimeout setinterval


【解决方案1】:

不确定我是否完全理解了这个问题,但是像这样的事情呢

setTimeout(function () {
  setTimeoutTriggered = true;
  slideshow();
}, 9000);

if ( (count < max - 1) && !setTimeoutTriggered ) {
  ...
}

当然你可以给 setTimeoutTriggered 一个更语义化的名字。 并且最好避免使用全局变量:)

无论如何,我发现这个 jQuery 插件非常适合管理超时和间隔! http://plugins.jquery.com/project/timers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多