2017-03-08 8 views
1

Mein Code gibt "Uncaught reference error: y ist nicht definiert" zurück, da var y in einer anderen Funktion definiert ist. (Es gibt eine HTML-Schaltfläche, die auf der Funktion p ruft, wenn sie gedrückt)setInterval und clearInterval

var x = 0; 

function write5() { 
    if (x <= 9) { 
     document.write(5); 
     x += 1; 
    } 
    else { 
    clearInterval(y); 
    } 
} 
function p() { 
    var y = setInterval(write5, 500); 
} 

Aber wenn ich die Variable außerhalb der Funktion setzte es beginnt sofort. Wie würde ich die Funktion 5 mal drucken lassen, nur wenn die Taste gedrückt wird und ohne einen Fehler zu melden?

+2

definieren die Variable an der Spitze (außerhalb der Funktion) mit 'var y;' dann den Code ändern innerhalb der 'p()' Funktion nur 'y = ....' – APAD1

+0

Ah, das macht Sinn. Vielen Dank! – user7679227

Antwort

1

Deklarieren "y" außerhalb der Funktion, wie folgt aus:

var x = 0; 
var y = null; 
function write5() { 
    if (x <= 9) { 
     document.write(5); 
     x += 1; 
    } 
    else { 
    clearInterval(y); 
    } 
} 
function p() { 
    y = setInterval(write5, 500); 
} 
Verwandte Themen