单击时需要恢复“间隔”

Need to resume Interval on click

本文关键字:间隔 恢复 单击      更新时间:2023-09-26


我遇到了一堵砖墙,似乎无法解决这个问题。基本上,我之所以设置Interval(abcd),是因为每当弹出的div在页面上可见时,我都想执行一段代码。

function confirmationVisibility() {  
        if ($("#box2").is(":visible")) {
    //If confirmation box is visible 
          console.log('cool beans');
          clearInterval(abcd); //stop timer
          abcd = null;
        }     
}
var abcd;
abcd = setInterval(confirmationVisibility, 100);

这一次效果很好,但我正在努力寻找一种方法,在下次触发弹出窗口时恢复间隔。

你知道我怎样才能做到这一点吗?当用户单击"关闭弹出窗口"按钮时,我尝试重新启动间隔,但似乎不起作用。

非常感谢,
亚历克西斯。

问题是,当您调用"clearInterval"时,它会结束由"setInterval"启动的重复

这个怎么样:

function confirmationVisibility() {  
    if ($("#box2").is(":visible")) {
//If confirmation box is visible 
      console.log('cool beans');
      clearInterval(abcd); //stop timer
      abcd = null;
    } 
    else{
      abcd = setInterval(confirmVisibility, 100); 
    }           
}
var abcd;
abcd = setInterval(confirmationVisibility, 100);

当弹出菜单可见时,再次设置间隔。

查看此链接http://jsfiddle.net/9La0L6f7/3/或下面的代码。

我设置了另一个间隔来模拟弹出窗口的隐藏。

var abcd;
function confirmationVisibility() {  
        if ($("#box2").is(":visible")) {
          alert('cool beans');
          clearInterval(abcd); //stop timer;
        }     
}
abcd = setInterval(confirmationVisibility, 100);
/* closing of popup simulation here */ 
setInterval(function(){
    $("#box2").css("visibility", "hidden");
}, 5000);
/* solution here, declare abcd again */
$("#showbox2").click(function(){
    $("#box2").css("visibility", "visible");
    abcd = setInterval(confirmationVisibility, 100);
});