Javascript 需要在单击时恢复间隔
Javascript 需要在单击时恢复间隔,javascript,jquery,intervals,Javascript,Jquery,Intervals,我碰到了一堵砖墙,似乎无法解决这个问题。 基本上,我设置了一个间隔(abcd),因为我希望每次在页面上看到弹出div时都执行一段代码 function confirmationVisibility() { if ($("#box2").is(":visible")) { //If confirmation box is visible console.log('cool beans'); clearInterval(abcd)
我碰到了一堵砖墙,似乎无法解决这个问题。
基本上,我设置了一个间隔(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);
这在一次中效果很好,但我正在努力寻找一种方法,以便在下次触发弹出窗口时恢复间隔
你知道我怎样才能做到这一点吗?我尝试过在用户单击“关闭弹出窗口”按钮时重新启动间隔,但它似乎不是这样工作的
非常感谢,Alexis。问题在于,当您调用“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);
问题是,当您调用“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);
当弹出窗口可见时,再次设置间隔 请参阅下面的链接或代码 我设置了另一个间隔来模拟弹出窗口的隐藏
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);
});
当弹出窗口可见时,再次设置间隔 请参阅下面的链接或代码 我设置了另一个间隔来模拟弹出窗口的隐藏
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);
});
是的,我明白这一点,我正在寻找解决办法。我需要我的代码在每次弹出窗口可见时只触发一次。当它再次隐藏时,计时器可能会重新启动,对吗?是的,我理解这一点,并且正在寻找解决办法。我需要我的代码在每次弹出窗口可见时只触发一次。当它再次隐藏时,计时器可能会重新启动,对吗?“每当页面上出现弹出div时,我都想执行一段代码。”——你能在这里说得更清楚一点吗?是什么导致此弹出窗口显示?为什么不使用触发机制来执行代码?在这种情况下,使用
setInterval
可能无法跟踪弹出窗口的状态。调用setInterval
应重新启动/恢复计时器。这里有一个小把戏:“每当页面上出现一个弹出div时,我想执行一段代码。”——你能在这里说得更清楚一点吗?是什么导致此弹出窗口显示?为什么不使用触发机制来执行代码?在这种情况下,使用setInterval
可能无法跟踪弹出窗口的状态。调用setInterval
应重新启动/恢复计时器。这是一把小提琴: