2009-04-06 7 views
1

私はjQueryを使ってオンラインゲームを作成しています。ため、私はこのコードの問題に起因jQuery.fx.off = true;を設定し、オプションでやった遅いコンピュータのためのフェード効果の多くに:遅いコンピュータのjQuery

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

#msg divの中にこのコード表示メッセージを、その後、5秒後にメッセージがなくなっています。多くのメッセージがあり、いつでも追加できます。フェードアウトが瞬時に行われるため:(私は必要なものjQuery.fx.off = true;メッセージは表示されません場合はfx.offがtrueの場合$('#id').delay(5000).remove()のようなものである。

私は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の外で定義されていれば、 lはまた、setTimeoutで定義されます。これは実際には多くのプログラミング言語の機能であり、特にJavaScriptでは非常に便利です。 –

関連する問題