我有一个autorefresh函数,如果选中了复选框并单击了一个按钮,则会调用该函数。我想在取消选中复选框时停止自动刷新:
var refreshId = null;
$("#disINFRAlive").click(function(infralivefun) {
event.preventDefault(infralivefun);
var category_id = {};
category_id['datumanf'] = $("#datumanf").datepicker().val();
category_id['datumend'] = $("#datumend").datepicker().val();
$.ajax({ //create an ajax request to display.php
type: "POST",
url: "infratestomc.php?id=" + Math.random(),
dataType: "html",
data: category_id,
success: function(response) {
$("#resulttabelle").show().html(response);
}
});
if ($('#autorefcheck').is(':checked')) {
var refreshId = setInterval(function() {
var category_id = {};
category_id['datumanf'] = $("#datumanf").datepicker().val();
category_id['datumend'] = $("#datumend").datepicker().val();
$.ajax({ //create an ajax request to display.php
type: "POST",
url: "infratestomc.php?id=" + Math.random(),
dataType: "html",
data: category_id,
success: function(response) {
$("#resulttabelle").show().html(response);
}
});
}, 5000);
}
});
如果选中#autorefcheck复选框并单击按钮#disinFRAlive,则autorefresh有效。但是,我无法通过取消选中复选框来停止:
function stopinterval(){
clearInterval(refreshId);
return false;
}
$('#autorefcheck').click(function() {
stopinterval();
});
我试图以各种方式使用clearInterval,到目前为止还没有工作。
答案 0 :(得分:3)
从var
的初始化中删除refreshId
关键字。
if ($('#autorefcheck').is(':checked')) {
refreshId = setInterval(function() {
您拥有它的方式,您将在不同的范围内重新声明该变量。这样,您无法从stopInterval()
访问它。