2

問題はJqueryのキューに関連していると思います。clearQueue() を使用してキューをクリアしてアニメーションを停止できますが、キューをクリアしてもコールバック関数を停止することはできません。

$("#sth").animate( { width:'100%' }, 2000, function() {
    $("#sth").css("width","0%");
});

$("#sth").clearQueue().css("width","0%");

アニメートを停止して幅を押し戻すことができます。ただし、2000 ミリ秒後には、完全なコールバック機能により、幅も 100% になります。キューが存在するかどうかに関係なく、関数は 2000 ミリ秒後に呼び出されます。

4

2 に答える 2

2

jQueryのドキュメントから:

.clearQueue() まだ実行されていないすべての項目をキューから削除します。

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

.clearQueue() の代わりに .stop() を使用してみてください。

于 2012-09-03T21:25:42.180 に答える