Donc, j'ai une boucle infinie pour travailler dans cette fonction en utilisant seinterval attaché à un onclick. Le problème est que je ne peux pas l'arrêter d'utiliser ClearInterval dans un ONCLICK. Je pense que c'est parce que lorsque j'attache un clarté sur un onclick, il tue un intervalle spécifique et non la fonction tout à fait. Y a-t-il quelque chose que je puisse faire pour tuer tous les intervalles em> à travers un oncclick? Voici mon . JS Fichier et les appels que je fais sont P> input type="button" value="generate" onClick="generation();
input type="button" value="Infinite Loop!" onclick="setInterval('generation()',1000);"
input type="button" value="Reset" onclick="clearInterval(generation(),80;" // This one here is giving me trouble.
4 Réponses :
avoir } P> P> génération (); code> appel
settimeout code> à lui-même au lieu de
setInterval code>. C'était que vous pouvez utiliser un peu si la logique dans la fonction pour l'empêcher d'exécuter
Settimeout code> assez facilement.
Cela ne répond pas directement à la question de "Y a-t-il un moyen de tuer une boucle seinterval via un bouton OnClick"
ClearInterval code> est appliqué sur la valeur de retour de
setInterval code>, comme ceci:
var interval = null;
theSecondButton.onclick = function() {
if (interval === null) {
interval = setInterval(generation, 1000);
}
}
theThirdButton.onclick = function () {
if (interval !== null) {
clearInterval(interval);
interval = null;
}
}
Si (intervalle === null) devrait être si (intervalle! == null)
@Hatim: corrigé.
setInterval retourne une poignée, vous avez besoin de cette poignée afin que vous puissiez le effacer
plus facile, créez un VaR pour la poignée dans votre tête HTML, puis dans votre ONCLICK Utilisez le var p>
// in the head var intervalHandle = null; // in the onclick to set intervalHandle = setInterval(.... // in the onclick to clear clearInterval(intervalHandle);
Ça ne marche pas pour moi :( dit que l'ID d'intervalle est null