我遇到了一堵砖墙,似乎无法解决这个问题。
基本上,我正在设置一个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);
这种方法可以正常工作一段时间,但我正在努力寻找一种方法让下一次弹出窗口被触发时恢复间隔。
你知道我怎么能做到这一点吗?当用户点击“关闭弹出窗口”按钮时,我已经尝试重新启动间隔,但它似乎没有那样工作。
非常感谢,
亚历。
答案 0 :(得分:0)
问题是当你调用“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);
答案 1 :(得分:0)
弹出窗口可见时再次设置间隔。
请参阅此链接http://jsfiddle.net/9La0L6f7/3/或以下代码。
我设置了另一个Interval来模拟弹出窗口的隐藏。
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);
});