0

我正在使用 Foundation 的模态窗口,当它打开时我每 3 秒发出一次警报。关键是我想在模式窗口关闭时禁用间隔。我尝试了以下但 clearInterval 函数似乎不起作用(关闭模式后仍然会生成警报):

$(document).on('opened', '[data-reveal]', function () {
            var interval = setInterval(function(){alert("O.K.");}, 3000);
        if($("div#automate_message").height() > 100) { interval; }
});
        $(document).on('close', '[data-reveal]', function () {
        clearInterval(interval);
});
4

2 回答 2

2

在您的代码interval中,当您尝试clearInterval.

interval所以,首先全局声明变量。

全局声明的变量称为:GLOBAL VARIABLES - 它的值可以在整个程序中随处访问和修改。

试试这个:

var interval = null;
$(document).on('opened', '[data-reveal]', function () {
    interval = setInterval(function(){alert("O.K.");}, 3000);
    if($("div#automate_message").height() > 100) { interval; }
});

$(document).on('close', '[data-reveal]', function () {
    clearInterval(interval);
});
于 2014-06-11T08:15:28.703 回答
1

将变量初始化interval全局变量,即全局范围,以便在任何地方都可以访问它。

//global scope
var interval = null;

$(document).on('opened', '[data-reveal]', function () {

        //local scope

        interval = setInterval(function(){alert("O.K.");}, 3000);
        if($("div#automate_message").height() > 100) { interval; }
});

$(document).on('close', '[data-reveal]', function () {
        clearInterval(interval);
});
于 2014-06-11T08:15:39.987 回答