Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 停止设置间隔,直到事件再次发生_Javascript_Jquery_Setinterval_Social_Clearinterval - Fatal编程技术网

Javascript 停止设置间隔,直到事件再次发生

Javascript 停止设置间隔,直到事件再次发生,javascript,jquery,setinterval,social,clearinterval,Javascript,Jquery,Setinterval,Social,Clearinterval,我做了一些共享选项,用户点击第一张卡上的社交共享按钮,打开一个窗口,当他们关闭窗口时,它启动对下一张卡的更改 以下是我如何打开和跟踪窗口的关闭: Javascript 一切都很好。。。第一次。但是,如果用户返回共享菜单(不刷新),打开窗口,共享站点,然后关闭窗口,则不会触发事件 我知道这是因为我调用了clearInterval,但我必须这样做,以防止setInterval自动翻阅其余的卡片 如何使flipOnClose()在用户关闭窗口时触发一次,并在每次连续执行操作时触发 编辑:我也遇到了这个

我做了一些共享选项,用户点击第一张卡上的社交共享按钮,打开一个窗口,当他们关闭窗口时,它启动对下一张卡的更改

以下是我如何打开和跟踪窗口的关闭:

Javascript 一切都很好。。。第一次。但是,如果用户返回共享菜单(不刷新),打开窗口,共享站点,然后关闭窗口,则不会触发事件

我知道这是因为我调用了
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');
    });
}