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