0

私はマトリックス製品の画像を含むページを持っています.jqueryアニメーションを次々と表示したいのですが、私はこのようなコードを使用しています

デフォルトでは、すべての画像は非表示になっています。次のコードは、各画像を遅延して表示するため、1つずつ表示されます

$(".container img").each(function(i) { $(this).delay(100*i).fadeIn(); });

これはうまく機能しますが、問題は、ユーザーが2番目のカテゴリをクリックすると1つのカテゴリをロードしているときに、最初のカテゴリの画像が2番目のカテゴリに表示されるというカテゴリの数があることです

どうすれば問題なくこれを行うことができますか?

4

1 に答える 1

0

カテゴリ オプション ボタンを にしますinput type=button。画像のロード中にボタンを無効にし、すべての画像をロードした後、次のように入力から無効を削除します。

$("div input").click(function() {
   $("div input").attr('disabled',true);

   $(".container img").each(function(i) {
        $(this).delay(100*i).fadeIn();
   });

   $(".container img").promise().done(function() {
        $("div input").removeAttr('disabled');
   });

});

jQuery promise 関数は、関数の終点を見つけるために使用されます$(".container img)。詳しくはhttp://api.jquery.com/promise/をご覧ください。

于 2012-04-23T10:35:06.267 に答える