Chcę, aby ten interwał w programie error
obsługi nie działał wielokrotnie. Czy to możliwe, a jeśli tak, to w jaki sposób?
// example code
$(document).on('ready',function(){
setInterval(updateDiv,3000);
});
function updateDiv(){
$.ajax({
url: 'getContent.php',
success: function(data){
$('.square').html(data);
},
error: function(){
$.playSound('oneday.wav');
$('.square').html('<span style="color:red">Connection problems</span>');
// I want to stop it here
}
});
}
javascript
jquery
html
setinterval
Henrik Petterson
źródło
źródło
Odpowiedzi:
Musisz ustawić zwracaną wartość
setInterval
na zmienną w zakresie modułu obsługi kliknięcia, a następnie użyć wclearInterval()
ten sposób:źródło
setTimout()
który działa tylko razUżyj zmiennej i wywołaj,
clearInterval
aby ją zatrzymać.źródło
Musisz przypisać zwracaną wartość
setInterval
funkcji do zmienneja następnie użyj,
clearInterval(interval)
aby go ponownie wyczyścić.źródło
UŻYJ to mam nadzieję, że ci pomogę
źródło
możemy łatwo zatrzymać ustawiony interwał, wywołując Clear interval
źródło
setInterval
może wyciekać w nieskończoność - nie ma powiązanej zmiennej var, aby ją kontrolować. Po drugie, nie masz jasnościthis
, ponieważthis
nie jest to przedział czasu. Jeśli użyjeszTypeScript
, miałbyś kłopoty:No overload matches this call.Overload 1 of 2, '(intervalId: Timeout): void', gave the following error: Argument of type 'this' is not assignable to parameter of type 'Timeout'.
źródło