forループがすべての対話を完了するまで、アラート機能の実行を停止するにはどうすればよいですか?
$(document).ready(function() {
for (i = 1; i <= 8; i++) {
$('#ponyDiv').animate({left: '200px'}, 2000);
}
alert("here");
});
forループがすべての対話を完了するまで、アラート機能の実行を停止するにはどうすればよいですか?
$(document).ready(function() {
for (i = 1; i <= 8; i++) {
$('#ponyDiv').animate({left: '200px'}, 2000);
}
alert("here");
});
これは、ループが完了したときにアラートを出します(最終的なアニメーションが完了したときではありません)。
$(document).ready(function() {
for (i = 1; i <= 8; i++) {
$('#ponyDiv' + i).animate({left: '200px'}, 2000);
if(i === 8){
alert("here");
}
}
});
据え置き使用:
$.when($('[id^=pony]').animate({left:'200px'},2000))
.then(function() { alert('done'); });
もちろん、属性がon idで始まるよりもクラスを使用する方が良いですが、その要点は理解できます。
編集: 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');
});