Jquery 当tab处于非活动状态时,如何解决setInterval问题?

Jquery 当tab处于非活动状态时,如何解决setInterval问题?,jquery,setinterval,Jquery,Setinterval,我正在通过编写一个幻灯片插件来学习jQuery,如果效果良好,我将发布该插件供任何人使用。我有一个良好的开端,但遇到了一个问题。如果你切换标签,然后返回到它所在的页面,时间安排就会混乱。我已经看到了哪种方法处理同样的事情,但我不知道如何将答案应用到我的特殊情况 那么,如何修复SetInterval选项卡切换错误呢?通过切换选项卡可以看到: 对于任何关于代码改进的建议,请打5分 您可以在此处查看和下载幻灯片:或查看JSFIDLE: (为新手js代码感到抱歉!我至少试过好好注释一下)您可以将停止事件

我正在通过编写一个幻灯片插件来学习jQuery,如果效果良好,我将发布该插件供任何人使用。我有一个良好的开端,但遇到了一个问题。如果你切换标签,然后返回到它所在的页面,时间安排就会混乱。我已经看到了哪种方法处理同样的事情,但我不知道如何将答案应用到我的特殊情况

  • 那么,如何修复SetInterval选项卡切换错误呢?通过切换选项卡可以看到:
  • 对于任何关于代码改进的建议,请打5分
  • 您可以在此处查看和下载幻灯片:或查看JSFIDLE:


    (为新手js代码感到抱歉!我至少试过好好注释一下)

    您可以将停止事件绑定到$(window).blur,将开始事件绑定到$(window).聚焦,以便在选项卡处于非活动状态时计时器停止

    比如:

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

    它在描述中,但直接链接是:我们不希望您的项目位于某个外部服务器上。我们需要一个问题的测试用例。这不是一个个人调试服务,而是一个编程Q&ASure,这里有一个JSFIDLE:听起来是个不错的开始!今晚我会调查这个选择。