clearInterval () funktioniert nicht [duplizieren]

Mögliche Duplikate:
JS - So löschen Sie das Intervall nach Verwendung von setInterval ()

Ich habe eine Funktion, die das ändertfont-family von etwas Text alle 500 ms mitsetInterval (Ich habe es nur gemacht, um JavaScript zu üben.) Die Funktion wird durch Klicken auf einen "Ein" -Knopf aufgerufen und das Intervall soll mit einem separaten Knopf "Aus" gelöscht werden. Die Schaltfläche "Aus" löscht das Intervall jedoch nicht, sondern setzt sich einfach fort. Ich vermute, dass dies etwas mit dem Umfang zu tun hat, aber ich bin nicht sicher, wie ich es anders schreiben soll. Außerdem möchte ich das nicht mit jQuery machen, weil ich es schließlich mache, um zu lernen.

<body>
<p><span id="go" class="georgia">go</span> Italian</p>
<p>
    <button id="on" type="button" value="turn on">turn on</button>
    <button id="off" type="button" value="turn off">turn off</button>
</p>

<script>
var text = document.getElementById("go");
var on = document.getElementById("on");
var off = document.getElementById("off");

var fontChange = function() {
    switch(text.className) {
        case "georgia":
            text.className = "arial";
            break;
        case "arial":
            text.className = "courierNew";
            break;
        case "courierNew":
            text.className = "georgia";
            break;      
    }
};

on.onclick = function() {
    setInterval(fontChange, 500);
};

off.onclick = function() {
    clearInterval(fontChange);
}; 
</script>
</body>

Antworten auf die Frage(6)

Ihre Antwort auf die Frage