13

を使用するページがあります

$(id).show("highlight", {}, 2000);

ajaxリクエストを開始するときに要素を強調表示するには、失敗する可能性があるため、次のようなものを使用します

$(id).show("highlight", {color: "#FF0000"}, 2000);

エラーハンドラで。問題は、最初のハイライトが終了していない場合、2番目のハイライトがキューに入れられ、最初のハイライトの準備ができるまで実行されないことです。したがって、質問:最初の効果をどうにかして止めることができますか?

4

4 に答える 4

15

これを受け入れられた回答のコメントとしてリストしましたが、問題を抱えている一部の人々を助けているように見えるため、スタンドアロンの回答として投稿することをお勧めします.stop()


参考までに-私もこの答えを探していました(脈動効果を止めようとしています)が.stop()、コードに がありました。

ドキュメントを確認した後、必要な.stop(true, true)

于 2012-04-23T12:42:32.797 に答える
11

jQueryドキュメントから:

http://docs.jquery.com/Effects/stop

一致した要素で現在実行中のアニメーションを停止します。..。

要素でが呼び出されると.stop()、現在実行中のアニメーション(存在する場合)はすぐに停止します。たとえば、が呼び出された.slideUp()ときに要素が非表示になっている場合.stop()、その要素は引き続き表示されますが、以前の高さの一部になります。コールバック関数は呼び出されません。

同じ要素で複数のアニメーションメソッドが呼び出された場合、後のアニメーションは要素のエフェクトキューに配置されます。これらのアニメーションは、最初のアニメーションが完了するまで開始されません。が.stop()呼び出されると、キュー内の次のアニメーションがすぐに開始されます。clearQueueパラメータに値が指定されている場合、trueキュー内の残りのアニメーションは削除され、実行されません。

引数にtrueの値が指定されている場合jumpToEnd、現在のアニメーションは停止しますが、要素には各CSSプロパティのターゲット値がすぐに与えられます。上記の.slideUp()例では、要素はすぐに非表示になります。提供されている場合、コールバック関数はすぐに呼び出されます...

于 2008-09-12T20:42:48.133 に答える
2

.stop(true,true)はエフェクトをフリーズするため、その時点で非表示の場合は非表示のままです。これは、脈動効果を使用している場合に問題になる可能性があります。

$('#identifier').effect("pulsate", {times:5}, 1000);

これを回避するために、私は追加しました

$('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);
于 2016-02-22T11:10:42.407 に答える
0

私の場合、以下のコードを使用しても機能せず、不透明度の値が維持されます。

$('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);

私にとっては、不透明度を削除するだけで機能しています:

$('#identifier').stop(true, true).css('opacity','');
于 2019-07-20T08:26:55.097 に答える