1

jQueryAPIドキュメントにshow()は、jQuery 1.4.3以降、次の.show()ように呼び出すことができると記載されています。

.show( [duration ] [, easing ] [, complete ] )

引数は次のとおりです。

  • duration(デフォルト:400):アニメーションの実行時間を決定する文字列または数値。
  • easing(デフォルト:swing):トランジションに使用するイージング関数を示す文字列。
  • complete:アニメーションが完了したら呼び出す関数。

イージングは​​必要ないので、このバージョンと呼びます。

.show( [duration ] [, complete ] )

divを表示し、5秒間待ってから、500ミリ秒以上フェードアウトする関数が1つあります。

私はこれを試しました:

  $('#some_div').show( {
      duration: 5000,
      complete: function() { fadeOutHelper(500); }
  } );

この:

$('#some_div').show(5000, function() { fadeOutHelper(500); } );

また、どちらの場合もshow()、ヘルパー関数を呼び出す前に実際には5000ミリ秒待機します。

StackOverflowで回避策を見つけましたsetTimeout()jQueryを5秒間表示してから非表示にする

$('#some_div').show();
setTimeout(function() { fadeOutHelper(500); }, 5000);

show()回避策はありますが、jQueryドキュメントの非常に単純な関数の引数をどのように誤解しているのかを理解したいと思います。

4

1 に答える 1

2

divを表示し、5秒待ってから500msでフェードアウトする機能が1つあります。

5 秒間にわたって div を表示しますか、それとも div を即座に表示してから 5 秒間コールバックを待ちますか? }前者の場合、削除する必要がある余分なものがあることを除いて、2 回目の試行で問題なく動作します。余分な空白を使用すると、それは明らかです。

$('#some_div').show(5000, function() {
    fadeOutHelper(500);
}}); // oh noes, synax error

後者の場合、引用する「回避策」は、必要なものを実装する正しい方法です。setTimeoutハックではありません。これについて「回避策っぽい」ものはありません。

$('#flash_helper').show();
setTimeout(function() { fadeOutHelper(500); }, 5000);
于 2013-02-11T17:14:04.830 に答える