2012-03-11 4 views
0

로 만드는 기능 풀 라인 그래서이 같은 code that simulates function line (fn1, delay, fn2, delay ... fnN - 함수를 호출 조금 자고 등등 라인에서 제거).자바 스크립트 : 지연

나는 이상한 문제에 직면 해있다. 나는 지체가 없다. 왜 내 코드가 잘못 되었습니까?

+0

'openWindowDelayedPool.add (appendStuff는())'appendStuff' 즉시 호출 openWindowDelayedPool.add''반환 값을 전달한다. 대신 함수를 전달하고 호출하지 않아도됩니다. Uncaught TypeError : undefined *의 'call'메쏘드를 호출 할 수 없습니다. (이것은 당신의'setTimeout' 콜백에 있습니다.이 매개 변수는 다른'val'을 음영 처리합니다.) 오류가 발생하기 때문에 당신의 코드에 다른 문제가있을 것입니다. 그러나 이러한 것들이 수정 되더라도 작동하지 않습니다. 이 기능의 전반적인 논리가 올바르지 않은 것 같습니다. –

답변

1

첫 번째 문제는 추가를 호출하는 함수를 전달하는 대신 append에 즉시 호출하는 것입니다. 당신은 제대로하지만 작동하지 않을 것 것을 해결 한 번도

openWindowDelayedPool.add($('.container').append('<p>Test</p>')); 

openWindowDelayedPool.add(function(){ 
    $('.container').append('<p>Test</p>') 
}); 

해야, 첫 번째 실행되지만 모든 후속 호출은 단순히 isRunning가 true 실행하지 찾을 수 있습니다. 코멘트에 @FelixKing에서 언급 한 바와 같이 또한

:

setTimeout(function(val){ 

이 올바르지 않습니다. 이 함수에 매개 변수를 전달하고 싶지는 않고 val을 사용하십시오.

setTimeout(function(){ 
+0

나는 그것을 고치려고 노력했다. (http://jsfiddle.net/UcsuB/2/)하지만 나는 6 대신에 오직 하나의 "Test"를 얻는다. remove가 모든 동일한 val을 제거하기 때문인가? – myWallJSON

+0

예 ~) = [여기] (http://jsfiddle.net/UcsuB/3/) – myWallJSON