2017-03-08 10 views
1

var yが別の関数の中で定義されているため、私のコードは "キャッチされていない参照エラー:yが定義されていません"を返します。setIntervalとclearInterval

var x = 0; 

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

(存在押されたときに関数pを呼び出しHTMLボタンです)しかし、私は関数の外で変数を置けば、それはすぐに開始します。ボタンを押したときだけ始まり、エラーを返さないで、ファンクションプリントを5回10回行う方法はありますか?

+2

'VAR yを有する(関数外)上部に変数を定義し、' '次いでP()'関数内のコードを変更します'y = .... 'になるだけです。 – APAD1

+0

ああ、意味があります。ありがとう! – user7679227

答えて

1

機能外部宣言「Y」を、次のように:

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); 
} 
関連する問題