2017-03-08 106 views
1

我的代碼返回「Uncaught reference error:y is not defined」,因爲var y是在不同的函數中定義的。 (有一個html按鈕,當按下時調用函數p)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); 
} 

但是,如果我把變量放在函數之外,它立即啓動。我該如何使功能打印5 10次,僅在按下按鈕時才啓動,並且不會返回錯誤?

+2

用'變種是定義在頂部的變量(功能外);'然後改變代碼中的'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); 
} 
相關問題