2017-03-08 74 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); 
} 
相关问题