2011-09-09 13 views
1

나는 showchild(pgid)이라는 JavaScript 함수를 사용하고 있습니다. 문서 준비 기능을 호출했습니다 ...setInterval은 변수에 액세스 할 수 없습니까?

$(document).ready(function() 
{ 
    var pgid = $('#hiddenuserkey').val(); 
    //alert(pgid); 
    showchild(pgid); 
    setInterval("showchild(pgid)",1000); 
}); 
+3

'pgid'가'ready' 핸들러에 대해 * 로컬 *이기 때문에'showchild (pgid) "'문자열이 * global * scope에서 평가되기 때문입니다. * 그래서 setXXXXXX에 문자열을 넘겨서는 안된다. –

+1

그 대답은 논평이 아닙니다. ;) – ThiefMaster

+0

-1 "작동하지 않는"경우. 적절한 진단 정보를 포함 시키십시오 (나중에). –

답변

7

문자열을 전달할 때 가능한 한 최악의 방법으로 사용하고 있습니다. 비 전역 변수에 액세스 할 필요없이 문자열을 전달하면

setInterval(function() { 
    showchild(pgid); 
}, 1000); 

, 그것이 국제적인 맥락에서 평가됩니다

대신 다음 코드를 사용합니다. 함수를 전달함으로써 (선호되는 방법) 모든 접근 가능한 변수는 함수의 클로저에 유지되므로 호출시 해당 함수 내에 pgid이 정의됩니다.

관련 문제