如果setInterval正在运行,则会发生冲突

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果setInterval正在运行,则会发生冲突相关的知识,希望对你有一定的参考价值。

我没有设法找到脚本的方法:如果用户按下next按钮,停止autoplay,否则:继续autoplayand继续显示pause按钮。

谢谢。 :)

$(function() {
var timer;
function autoplay() {
    timer = setInterval(function() {
        $('#next-icon').click();
    }, 5000);
};

$('#prev-icon, #next-icon').click(function() {
    switch (this.id) {
        case 'prev-icon':
            $('#pause-icon').hide(); $('#play-icon').show(); 
            clearInterval(timer);
            break;
        case 'next-icon': 
            $('#pause-icon').hide(); $('#play-icon').show(); 
            clearInterval(timer);
            break;
    }
}); });
答案

这是方式:

    $(function() {
var timer;
function autoplay() {
        timer = setInterval(function() {
            $('#next-icon').trigger('click', true);
        }, 5000);
    };

$('#prev-icon, #next-icon').click(function(event, play) {
    switch (this.id) {
        case 'prev-icon':
            $('#pause-icon').hide(); $('#play-icon').show();
            clearInterval(timer);
            break;
        case 'next-icon':
            if (play) {
                    setInterval(timer);
                } else {
                    $('#pause-icon').hide(); $('#play-icon').show(); clearInterval(timer);
                }
            break;
    }
});
});

以上是关于如果setInterval正在运行,则会发生冲突的主要内容,如果未能解决你的问题,请参考以下文章

冲突域

在if语句中添加window.location时,setInterval会冻结

iOS 6 Safari,setInterval 不会被解雇

如何在一个页面使多个setInterval函数正常运行

关于setInterval()你所不知道的地方

java中如果在关闭Socket时发生一个I/O错误,则会抛出一个啥异常?