-2

以下は、助けが必要なスニペットです。すべてのスパンが繰り返されたら、関数を呼び出したいと思います。たとえば、8 つのスパンがあり、8 番目のスパンの関数が実行された後、どのように呼び出すのnextFunction()ですか?

    $('#div1').animate({ opacity: '0.2' }, 500, function () {
         $('span').each(function () {
             //do something.
         });
         nextFunction();
    });

    function nextFunction() {
         alert("called after the last .each() has occurred");
    };
4

4 に答える 4

1

.each() ループで AJAX リクエストを使用する予定がない限り、コードは実際に記述したとおりに順番に実行する必要があります。

于 2013-09-26T16:25:57.023 に答える
0

.each()同期です。それはあなたが持っている方法で機能します。このフィドルを参照してください

于 2013-09-26T16:31:46.130 に答える
0

このようなもの

$('#div1').animate({ opacity: '0.2' }, 500, function () {
         var doSomething = 0,
             ctx = null,
             checker = null;
         checker = function() {
           if (domSomething === $('span').length)
           {
              clearTimeout(ctx);
              nextFunction();
              return ;
           }
           setTimeout(checker, 100);
         };
         $('span').each(function () {
             doSomething += 1;
             //do something.
         });
         checker();
    });
于 2013-09-26T16:24:45.077 に答える