2017-03-08 15 views
1

내 코드는 "잡히지 않은 참조 오류 : y가 정의되지 않았습니다."를 반환합니다. var y는 다른 함수 내에 정의되어 있기 때문입니다. (눌렀을 때 함수 p를 호출하는 HTML 버튼이 있습니다.)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); 
} 

그러나 변수를 함수 외부에 놓으면 즉시 시작됩니다. 버튼을 눌렀을 때만 시작하고 오류를 반환하지 않고 어떻게 함수 인쇄를 10 번 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); 
}