2011-10-01 2 views
0

문제가 있습니다. 작동하지 않는jQuery 시간 초과 변경 내용

var test='test'; 
$('#tip').delay(1000).html(test); 

, 그것은 텍스트를 변경하지 않습니다 이 코드를 사용합니다. 비록 변수가있는 대신 html ('test')을 수행하면 작동합니다. 나는 또한 비 jQuery를 자바 스크립트를 사용하여 시도했다 :

var test='test'; 
setTimeout("document.getElementById('tip').innerHTML=text", 1000); 

을했듯이, 그것은 단지 작동 내가 직접 입력 할 경우 대신 변수의 텍스트입니다.

어떻게 수정할 수 있습니까? setTimeout도 변수와 함께 작동합니까? 아니면 해결 방법이 있습니까?

Btw, 저는 jQuery 1.6.3을 사용합니다.

EDIT : 죄송합니다. 표준 메소드 (nonjQuery) 만 변수없이 처리하려고 할 때만 작동합니다. jQuery를 사용하면 먼저 '테스트'가 수행되고 지연이 발생합니다.

답변

4

이 난 그냥 함수를 작성했습니다 :

(function(text){ 
    setTimeout(function(){ 
     document.getElementById("tip").innerHTML = text; 
    }, 1000); 
})(text) 

시간 초과는 여러 있도록 test 변수를 사용할 수 있으며, 익명 함수 내부에 랩되고, 서로 간섭하지 않는다. 익명 함수에서 텍스트를 래핑하는 대신 함수의 이름을 지정하고 스크립트 내에서 호출 할 수도 있습니다 (funcName("test text")).

+0

감사합니다. 그건 내 문제를 해결 – SnackerSWE

+1

당신은 오신 것을 환영합니다. 담당자가 존재하지 않는다면, 오늘 1000 명이 넘을 것입니다. O_o –