Javascript 停止设置间隔,直到事件再次发生
我做了一些共享选项,用户点击第一张卡上的社交共享按钮,打开一个窗口,当他们关闭窗口时,它启动对下一张卡的更改 以下是我如何打开和跟踪窗口的关闭: Javascript 一切都很好。。。第一次。但是,如果用户返回共享菜单(不刷新),打开窗口,共享站点,然后关闭窗口,则不会触发事件 我知道这是因为我调用了Javascript 停止设置间隔,直到事件再次发生,javascript,jquery,setinterval,social,clearinterval,Javascript,Jquery,Setinterval,Social,Clearinterval,我做了一些共享选项,用户点击第一张卡上的社交共享按钮,打开一个窗口,当他们关闭窗口时,它启动对下一张卡的更改 以下是我如何打开和跟踪窗口的关闭: Javascript 一切都很好。。。第一次。但是,如果用户返回共享菜单(不刷新),打开窗口,共享站点,然后关闭窗口,则不会触发事件 我知道这是因为我调用了clearInterval,但我必须这样做,以防止setInterval自动翻阅其余的卡片 如何使flipOnClose()在用户关闭窗口时触发一次,并在每次连续执行操作时触发 编辑:我也遇到了这个
clearInterval
,但我必须这样做,以防止setInterval
自动翻阅其余的卡片
如何使flipOnClose()
在用户关闭窗口时触发一次,并在每次连续执行操作时触发
编辑:我也遇到了这个错误:
uncaughttypeerror:无法读取未定义的属性“closed”
我不确定我是否遇到了您的问题,但正如我所见,您可以通过将间隔创建放在打开窗口的同一个函数中来解决它。然后,每次打开窗口时,都会创建间隔。像这样:
var shareWindow;
//Open the window on call
function openShareWin(link) {
shareWindow = window.open(link, 'rmShare', 'location=0,status=0,menubar=0,scrollbars=1,resizable=1,width=520,height=350');
//Initiate card flip on close
var pollTimer = window.setInterval(function() {
if (shareWindow.closed !== false) { // !== is required for compatibility with Opera
window.clearInterval(pollTimer);
flipOnClose();
}
}, 200);
}
function flipOnClose() {
$(document).ready(function() {
$('.share-rotate').trigger('click');
});
}
如果我错了,请告诉我。成功了!我想知道我是否需要以某种方式包装计时器,这是如此整洁。非常感谢你!
var shareWindow;
//Open the window on call
function openShareWin(link) {
shareWindow = window.open(link, 'rmShare', 'location=0,status=0,menubar=0,scrollbars=1,resizable=1,width=520,height=350');
//Initiate card flip on close
var pollTimer = window.setInterval(function() {
if (shareWindow.closed !== false) { // !== is required for compatibility with Opera
window.clearInterval(pollTimer);
flipOnClose();
}
}, 200);
}
function flipOnClose() {
$(document).ready(function() {
$('.share-rotate').trigger('click');
});
}