画像がロードされた後に遅延を導入しようとしていますが、.delay() をスキップし続けます
$(\"#output\").html(\"<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>\").delay(5000);
上記のコードの多くのバージョンを試しましたが、まだ機能しません
ヘルプの人に感謝します。
画像がロードされた後に遅延を導入しようとしていますが、.delay() をスキップし続けます
$(\"#output\").html(\"<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>\").delay(5000);
上記のコードの多くのバージョンを試しましたが、まだ機能しません
ヘルプの人に感謝します。
.delay() メソッドは、キューに入れられた jQuery エフェクト間の遅延に最適です。制限があるため (たとえば、遅延をキャンセルする方法は提供されません)、.delay() は JavaScript のネイティブな setTimeout 関数に代わるものではなく、特定のユース ケースにより適している場合があります。
画像が読み込まれ、遅延が発生し、次に何が起こるかはあなた次第です。でも .delay は に付いているので#output
でしかできません#output
。たとえば、フェードアウトできます。
$("#output").html("<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>").delay(5000).fadeOut();
画像がロードされる前に遅延が必要な場合は、html を設定する前に遅延を使用します。
$("#output").hide().delay(5000).html("<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>").fadeIn();
画像がロードされた後に一時停止を誘発し、それから何か独立したものにしたい場合は、画像に ID を与え、ロード イベントで setTimeout を使用して関数を呼び出します。
$("#output").html("<center><img id='img1' src='http://i.imgur.com/GM6KJdh.gif' /></center>");
// Note: You can only use this after #img1 has been added to the DOM
$('#img1').load(function(){setTimeout('alert("hello")',5000);});
jQuery のドキュメントで説明されているように、.delay()
(同じ要素の) 後続のアニメーションのみを遅延させる jQuery アニメーション メソッドであり、非アニメーション メソッドの結果を遅延させず、コードの実行を「一時停止」しません。したがって、表示されているコードの後にあるコード行は、すぐに実行されます。
あなたがしようとしていることは、次の行を実行する前に2秒待つことだと仮定すると、これを行うことができます:
$("#output").html("<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>");
setTimeout(function() {
// your other code here
}, 2000);
これは、JavaScript の組み込みsetTimeout()
関数を使用して、渡した関数に入力したコードの実行を遅らせます。
AFAIKdelay()
関数は、後続のキュー内の関数を遅らせるだけです。したがって、 の後に別の関数を呼び出す必要がありますdelay()
。
多分あなたは試すことができます
.delay(5000).finish();
jQuery API は次のように述べています。
.delay() メソッドを使用すると、キュー内でそれに続く関数の実行を遅らせることができます。標準のエフェクト キューまたはカスタム キューで使用できます。キュー内の後続のイベントのみが遅延されます
例として、以下を確認してください
以下のステートメントが実行されると、要素は 300 ミリ秒間上にスライドし、800 ミリ秒間一時停止してから 400 ミリ秒間フェードインします。
$('#foo').slideUp(300).delay(800).fadeIn(400);
遅延後に後続のイベントがない場合は、使用できますJavaScript's native setTimeout function
使い方はsetTimeout function
?
setTimeout(function() {
//your code
}, 2000); // will work with every browser
詳細については、.delay()およびsetTimeoutを確認してください。