I次のコードを持っている:jQueryとのsetTimeout
jQuery(document).ready(function()
{
setTimeout($('#loading').fadeIn('slow'), 9999);
});
ゆっくりと9999ミリ秒後に負荷要素をフェードインする必要がありますが代わりに、それはすぐにフェードイン...なぜ?
誰でも手助けできます。おかげ
I次のコードを持っている:jQueryとのsetTimeout
jQuery(document).ready(function()
{
setTimeout($('#loading').fadeIn('slow'), 9999);
});
ゆっくりと9999ミリ秒後に負荷要素をフェードインする必要がありますが代わりに、それはすぐにフェードイン...なぜ?
誰でも手助けできます。おかげ
は、あなたがやりたいために、あなたは匿名関数でjQueryのものをラップする必要があります。
setTimeout(function() {
$('#loading').fadeIn('slow');
}, 9999);
setTimeout
機能(および同様setInterval
)は、遅延の後に何をすべきかを告げなければなりません。これはeval
を使用し、かなり醜い得ることができますので、それはありません
setTimeout('$("#loading").fadeIn("slow")', 9999);
:
eval
それがなければならないことはJavaScriptの文字列で
:そして、何をすべきか、それを伝えるための唯一の3つの方法がありますお勧めします。しかし、それは正常に動作します。私はsetTimeout(test(), 9999)
をしませんでした
var test = function() {
$('#loading').fadeIn('slow');
};
setTimeout(test, 9999);
注:機能参照して
。私はちょうどそれに機能の名前を付けました。
私は上記の最初のコードブロックで行ったことですが、オンザフライで構築する無名関数を使用します。
あなたがsetTimeout(test(), 9999)
ような何かをしようとすると、ブラウザは最初がtest()
を実行し、その後setTimeout
に戻り値を与えるます。だからあなたの試みで...
setTimeout($('#loading').fadeIn('slow'), 9999);
...ブラウザは、そのjQueryのものを実行していた#loading
要素をフェードインし、その後setTimeout
にどんなfadeIn
リターンを与えます。それが起こると、fadeIn
関数はjQueryオブジェクトを返します。しかし、setTimeoutはオブジェクトの扱いを知らないので、9999ミリ秒後に何も起こらないでしょう。
setTimeout
は、ファンクションを最初のパラメータとして受け取ります。現在は、fadeIn
操作を実行する評価を受けるjQueryセレクタを渡しています。代わりに、無名関数を渡してください:
setTimeout(function() {
$('#loading').fadeIn('slow'), 9999);
}, 9999);
settimeout()関数はjavascriptに由来し、引数としての関数を取ります。
jQuery(document).ready(function()
{
$('#loading').delay(9999).fadeIn('slow');
});
詳しい情報/ exemples:http://api.jquery.com/delay/
ます。また、(jQueryの.delayを使用することができます)
最良の選択は、jQueryの組み込み遅延()関数を使用することです。
$( '#loading')。遅延(9999).fadeIn( 'slow');
文法に小さな誤りがある場合は、自分自身でこれを修正したnon-js-addictsの目に答えを明確にするように編集する必要があります。) それ以外の場合は、 – red