gpt4 book ai didi

jquery - 等待每个 jQuery

转载 作者:行者123 更新时间:2023-12-03 22:32:29 26 4
gpt4 key购买 nike

我正在尝试使每个语句中的 div 淡入/淡出。问题是在淡入/淡出完成之前调用下一个项目。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" type="text/javascript"></script>

<div id='one'>one</div>
<div id='two'>two</div>
<div id='three'>three</div>

<script>
$.each([ "one", "two", "three"], function() {
console.log( 'start - ' + this );
animate( this );
console.log( 'end - ' + this );
});

function animate( id )
{
box = '#' + id;

$(box).fadeOut( 500, function( )
{

console.log('showing - ' + id);
$(box).fadeIn( 500 );
$(box).css('backgroundColor','white');

});

}
</script>

控制台显示 -

start - one
end - one
start - two
end - two
start - three
end - three
showing - one
showing - two
showing - three

我想要类似的东西 -

start - one
showing - one
end - one
start - two
showing - two
end - two
start - three
showing - three
end - three

那么我如何才能等待每个“each”完全完成,然后再继续下一个值?

最佳答案

您将必须使用回调 - 当前函数完成时执行的函数。要使用 .fadeOut 执行此操作,您需要执行以下操作:

$('#element').fadeOut( 400, myFunction );

在 fadeOut 完成之前,不会调用 myFunction。使用 $.get 的 AJAX 调用也可以具有回调函数。

这是一个有效的示例,尽管我确信有更好的方法:

function animate(myArray, start_index) {

// Stealing this line from Sam, who posted below.
if(!start_index) start_index = 0;

next_index = start_index+1;
if(next_index > myArray.length) { return; }

box = '#' + myArray[start_index];
$(box).fadeOut(500, function() { animate(myArray,next_index); });
}

然后在您的 document.ready 中调用:

animate(theArray);

关于jquery - 等待每个 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com