2010-04-21 3 views
2

오늘 심각하게 고민 중입니다.어떻게 변수를 jQuery 시간 초과로 전달할 수 있습니까?

나는 등 (예)로 제한 시간에, 변수, 또는 더 나은 객체를 전달해야

$('.x').each(function() 
{ 
    setTimeout(function() 
    { 
    alert ($(this).attr('id')) 
    },10000); 
}); 

을 분명히 무슨 일 타임 아웃이 원래 $(this)

에 대한 참조를하지 않는다는 것입니다

도움 말?

+0

서식에 대한 마크 감사합니다. – Bob

답변

5

this 컨텍스트 (민감하고 window.setTimeout에 있지만 기준 민감한 상황이 아닌 다른 변수에 복사 할 수있는 것보다 a_jQuery_object.each 다르다.이 목적 that을 사용하는 통상적 인 것이다.

$('.x').each(function() { 
    var that = this; 
    setTimeout(function() { 
     alert ($(that).attr('id')) 
    },10000); 
}); 
+0

작업했습니다. 왜 비록 이유는 모르겠어요. 분명히 setTimeout 또한 부모 함수의 범위를 벗어나므로 var를 잃을 것입니까? – Bob

+0

이 함수는'that' 에서 생성되었으므로 변수에 액세스 할 수 있습니다. – Quentin

+0

알겠습니다. 고맙습니다. r 도움. 나는 그것이 실행되기보다는 창조 된 시점에 있다는 요점을 놓쳤다. – Bob

관련 문제