Я вызываю функцию опроса 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');
}
}
});
}