2009-04-06 2 views
1

jQuery를 사용하여 온라인 게임을 만들고 있습니다. 오초 메시지가 사라진 후, 후 #msg의 DIV에저속 컴퓨터의 jQuery

$('<div>'+msg+'</div>').fadeOut(5000,function({$(this).remove()}).appendTo('#msg'); 

이 코드 표시 메시지 : 때문에 속도가 느린 컴퓨터에 대한 페이드 효과의 많은에이 코드에 문제가 발생 jQuery.fx.off = true;을 설정하는 옵션을했다. 많은 메시지가있을 수 있으며 언제든지 추가 할 수 있습니다. 때 fx.off에 해당하는 경우 내가 필요로하는 $('#id').delay(5000).remove() 같은이 페이드 아웃 즉시 수행 :(때문에 jQuery.fx.off = true; 메시지가 표시되지 않습니다.

내가 jQuery의 도움에서 찾고 있었다,하지만 아무것도 찾을 수 없습니다.

답변

2

이를 당신은 maybeFadeOut 또는 무엇인가라는 새로운 JQuery와 함수를 만들 수 있습니다 또는 귀하의 문제에 대한 허용 솔루션되지 않을 수 있지만.

jQuery.fn.maybeFadeOut = function (time, fun) { 
    if (slowComputer) { 
    setTimeout(function() { 
     $(this).remove(); 
     if (fun) fun(); // Optionally run the callback function. 
    }, time); 
    return $(this); 
    } else { 
    return $(this).fadeOut(5000, function() { $(this).remove; }); 
    } 
}; 
그것은 작동하지 않습니다
+0

,의 setTimeout 함수에서 $ (이) 아마 빈 때문이다. – Thinker

+0

을 나는 코드 자체를 테스트 한 적이 없지만, $ (this)가 setTimeout 밖에서 정의된다면, 또한 setTimeout에 정의됩니다. 이것은 실제로 많은 프로그래밍 언어의 기능이며 특히 자바 스크립트에서 매우 유용합니다. –

관련 문제