如果选项卡处于非活动状态,如何修复setInterval问题?

时间:2012-02-16 19:07:32

标签: jquery setinterval

我正在通过编写幻灯片插件来学习jQuery,如果结果很好,我将发布给任何人使用它。我有一个良好的开端,但遇到了一个问题。如果你切换标签,然后回到它打开的页面,时间就搞定了。我看过this question处理同样的事情,但我不知道如何将答案应用到我的特定情况。

  1. 那么,我该如何修复SetInterval选项卡切换错误?通过切换标签看到此处:http://jsfiddle.net/8FkYj/
  2. 有关代码改进的任何建议的高五。
  3. 你可以查看&在此下载幻灯片:http://kthornbloom.com/slydeshow/或查看JSFiddle:http://jsfiddle.net/8FkYj/

    (抱歉新手js代码!我至少试图评论一下)

1 个答案:

答案 0 :(得分:5)

您可以将停止事件绑定到$(窗口).blur,并将启动事件绑定到$(窗口).focus,以便在选项卡处于非活动状态时计时器停止。

类似的东西:

var interval_id;
$(window).focus(function() {
    if (!interval_id)
        interval_id = setInterval(slide, 1000);
});

$(window).blur(function() {
    clearInterval(interval_id);
    interval_id = 0;
});