当特定的引导程序模态打开时,我正在调用ajax轮询功能,它运行良好,但是当我强制关闭BS Modal时,轮询功能应停止,但仍在后台触发。
我不知道我在做什么错。使用Bootstrap 4。
这是我的js脚本,
var run = function() {
$.ajax({
url: ajaxurl,
dataType: 'json',
type: 'GET',
data: data,
success: function (data) {
var list = data.list;
$("#modal").on('hidden.bs.modal', function (e) {
clearTimeout(recursive);
console.log('stop');
});
if (list > 0) {
recursive = setTimeout(run, 2000);
console.log('run');
} else if (list == 0) {
clearTimeout(recursive);
console.log('stop');
}
}
});
}
更新:
我以这种方式尝试过,但是没有用。
var recursive;
$("#modal").on('shown.bs.modal', function (e) {
run();
});
$("#modal").on('hidden.bs.modal', function (e) {
clearTimeout(recursive);
});
var run = function() {
$.ajax({
url: ajaxurl,
dataType: 'json',
type: 'GET',
data: data,
success: function (data) {
var list = data.list;
if (list > 0) {
recursive = setTimeout(run, 2000);
console.log('run');
} else if (list == 0) {
clearTimeout(recursive);
console.log('stop');
}
}
});
}