0

forループがすべての対話を完了するまで、アラート機能の実行を停止するにはどうすればよいですか?

 $(document).ready(function() {
    for (i = 1; i <= 8; i++) {
        $('#ponyDiv').animate({left: '200px'}, 2000); 
    }
    alert("here");
});
4

3 に答える 3

1

これは、ループが完了したときにアラートを出します(最終的なアニメーションが完了したときではありません)。

$(document).ready(function() {
    for (i = 1; i <= 8; i++) {
        $('#ponyDiv' + i).animate({left: '200px'}, 2000);
        if(i === 8){
            alert("here");
        }
    }    
});
于 2013-03-06T07:30:20.377 に答える
1

据え置き使用:

$.when($('[id^=pony]').animate({left:'200px'},2000))
    .then(function() { alert('done'); });

もちろん、属性がon idで始まるよりもクラスを使用する方が良いですが、その要点は理解できます。

于 2013-03-06T07:33:39.067 に答える
1

編集: animate() をループで呼び出す場合、次のことができます。

$(document).ready(function () {
    var completed = 0;
    for (i = 1; i <= 8; i++) {
        $('#ponyDiv'+i).animate({
            left: '200px'
        }, 200, function () {
            if (completed++ == 7) alert("here");
        });
    }
});

アニメーションが完了した直後に呼び出されるJQuery animate() 'complete' コールバックを使用します。

  $('#ponyDiv').animate({left: '200px'}, 2000, function() {
    alert('here');
  });
于 2013-03-06T07:20:13.030 に答える