模态窗口关闭动作不能清除InterInterval

时间:2014-06-11 08:12:06

标签: javascript jquery zurb-foundation modal-window

我使用了基金会的模态窗口,当它打开时我每隔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);
});

2 个答案:

答案 0 :(得分: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);
});

答案 1 :(得分:1)

将变量interval初始化为 global variable ,即全局范围,以便可以随处访问它。

//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);
});