我只想在显示模态时计数。但以某种方式关闭模态后,计数器仍在上升。我下面的代码有什么问题?
$(document).ready(function() {
$('#mymodal').on('shown.bs.modal', function() {
var seconds = 0;
$('#mymodal #show_seconds').val(seconds);
if ($(this).is(':visible') {
setInterval(function() {
++seconds;
$('#mymodal #show_seconds').val(seconds);
}, 1000);
} else {
$('#mymodal #show_seconds').val('');
}
});
});
最佳答案
JavaScript函数不会自动为您销毁。您必须手动清除间隔。
$(document).ready(function() {
var interval;
$('#mymodal').on('shown.bs.modal', function() {
var seconds = 0;
$('#mymodal #show_seconds').val(seconds);
if ($(this).is(':visible') {
interval = setInterval(function() {
++seconds;
$('#mymodal #show_seconds').val(seconds);
}, 1000);
} else {
$('#mymodal #show_seconds').val('');
}
});
$('#mymodal').on('hidden.bs.modal', function () {
if( interval ) {
clearInterval( interval );
}
};
});
关于javascript - 隐藏模态后如何停止计数器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61337912/