2012-04-26 10 views
1

空のdivが表示されるように設定しました。つまり、id = "c1"という名前はありません。キューに入れられたjqueryイベントが正しく動作しない

私はそれがフェードインするように、それをキューしようとしていると言うだろう。その後、1秒後に、それは言うだろう 2秒

: 1秒

が、その後フェードアウトとなります

ページのリダイレクト。

$('#c1').html('2 seconds').fadeIn('fast').delay(800).html('1 second').delay(800).fadeOut('fast'); 

ただし、実行すると「1秒」と表示されて消えてしまいます。私は2秒のメッセージを全く見ることができません。これは、jqueryが最後の "html"イベントだけをリッスンしているかのようです。

また、divのデフォルトテキストとして「2秒」と入力してみました。それはどちらもうまくいかない。ページが読み込まれるとすぐに「1秒」と表示されます。あなたはこのような何か行うことができます

EDITソリューション

$('#c1').html('2').fadeIn('fast').delay(800).queue(function() {$(this).html('1');$(this).dequeue();}).delay(800).fadeOut('fast'); 

答えて

2

を試してみてください、彼らはすぐに満ちています。

代わりにhtml()関数のタイムアウトを使用するか、アニメーションコールバックに配置します。

$('#c1').html('2 seconds').fadeIn(1000, function() { 
    $(this).html('1 second').fadeOut(1000); 
});​ 
+0

私は投稿した後、それを理解しました。キューを使用することもできます。 – Dexter

+0

はい、jQueryのqueue()やdequeue()のようなカスタムキューも機能します。 – adeneo

+0

申し訳ありませんが、私は素晴らしいソリューションコードを掲載しました!しかし、私はまだあなたに最高の答えを与えるでしょう。 – Dexter

1

は、ユーザーは、()アニメーションではなく、HTMLのような他の機能を()遅らせることができ

$('#c1').html('2 seconds')fadeIn('fast'); 
    setTimeout($('#c1').html('1  second'), 800); 
    setTimeout($('#c1').fadeOut('fast'), 800); 
+0

うん、setTimeoutsもうまくいくかもしれないし、カスタムキューやadeneoがそれをやったこともできる。 – Dexter

+0

実際には、最初のfadeIn()の前に欠けている期間があり、それらのタイムアウトで関数呼び出しが必要なような動作はしません。 – adeneo

1

右、ドキュメントの状態:「それは、標準のエフェクトキューまたはカスタムキューで使用することができます」が、.htmlのような操作()効果キューを使用していない...

+0

その部分はドキュメントではあまり明確ではありませんでした。 – Dexter

関連する問題