Javascript 循环不工作时的jQuery
我只是想弄清楚如何循环使用同一个类的元素,并一次为它们设置一个动画。我想这个while循环可以工作,但我不明白为什么不行Javascript 循环不工作时的jQuery,javascript,jquery,Javascript,Jquery,我只是想弄清楚如何循环使用同一个类的元素,并一次为它们设置一个动画。我想这个while循环可以工作,但我不明白为什么不行 $(document).ready(function() { var index = 0; var images = $('.image'); while (index < images.length) { var image = images[index]; image.animate({
$(document).ready(function() {
var index = 0;
var images = $('.image');
while (index < images.length) {
var image = images[index];
image.animate({
opacity: "1"
}, 1000, function() {
index++;
});
};
});
在动画之后执行的回调中调用索引+。只有在该脚本停止执行后,动画才会开始
因此,index++永远不会执行,循环也永远不会结束
您需要将其重写为递归函数。现在调用index++的事件处理程序实际上需要负责设置下一个动画 index++在动画之后执行的回调中调用。只有在该脚本停止执行后,动画才会开始
因此,index++永远不会执行,循环也永远不会结束
您需要将其重写为递归函数。现在调用index++的事件处理程序实际上需要负责设置下一个动画 还有一个jQuery。每个函数的用法如下:
$('.class').each(function() {
$(this).animate();
});
其中,这是该类的下一项,还有一个jQuery。每个函数的用法如下:
$('.class').each(function() {
$(this).animate();
});
这是该类的下一项,为什么不使用jQuery each函数呢
var images = $('.image');
$.each(images,function(){
$(this).animate({
opacity:"1"
}, 1000, function(){
index++;
});
});
为什么不在每个函数中使用jQuery
var images = $('.image');
$.each(images,function(){
$(this).animate({
opacity:"1"
}, 1000, function(){
index++;
});
});
这是@Evert的一个简单实现 在这里引用他们的答案 在动画之后执行的回调中调用index++。 只有在该脚本停止后,动画才会开始 执行 因此,index++永远不会执行,循环也永远不会结束 您需要将其重写为递归函数。事件处理程序 现在调用index++实际上需要负责设置 下一个动画 实现可以是这样的
var index = 0;
var images = $('.image');
animate(images);
function animate() {
var image = images.eq(index);
image.animate({
opacity: "1"
}, 1000, function () {
index++;
animate();
});
}
演示这是@Evert的一个简单实现 在这里引用他们的答案 在动画之后执行的回调中调用index++。 只有在该脚本停止后,动画才会开始 执行 因此,index++永远不会执行,循环也永远不会结束 您需要将其重写为递归函数。事件处理程序 现在调用index++实际上需要负责设置 下一个动画 实现可以是这样的
var index = 0;
var images = $('.image');
animate(images);
function animate() {
var image = images.eq(index);
image.animate({
opacity: "1"
}, 1000, function () {
index++;
animate();
});
}
演示您的逻辑在索引++中出错;您应该有一个递归函数。您需要在递归函数中增加index的值
function YourRecusiveFunction() {
var image = images.eq(index);
image.animate({
opacity: '1'
}, 1000, function () {
index++;
YourRecusiveFunction();
});
}
文档准备好后调用RecursiveFunction。索引++中的逻辑出错;您应该有一个递归函数。您需要在递归函数中增加index的值
function YourRecusiveFunction() {
var image = images.eq(index);
image.animate({
opacity: '1'
}, 1000, function () {
index++;
YourRecusiveFunction();
});
}
文档准备好后,请调用RecursiveFunction。在if语句中尝试images.width,因为它的价值,您不需要;在while块结束时,在if语句中尝试images.width,因为它的价值,您不需要;在while块结束时。这并没有解决OP希望一次为一个图像设置动画的问题。这并没有解决OP希望一次为一个图像设置动画的问题。这并没有解决OP希望一次为一个图像设置动画的问题。@Evert我看到了。while循环将不会为下一个元素设置动画,直到上一个元素已设置动画?感谢您指出这一点。这并不能解决OP希望一次一个动画化图像的问题。@Evert我看到了。while循环将不会为下一个元素设置动画,直到上一个元素已设置动画?谢谢你指出这个Owell done=应该把你的例子和我的解释结合起来:p谢谢你,这正是我想要实现的。@Evert:这正是我想要实现的。@doWell done=应该把你的例子和我的解释结合起来:p谢谢你,这正是我想要实现的。@Evert:这正是我想要实现的我正要感谢他帮我把事情弄清楚。你和迪拉杰帮我弄明白了。谢谢你帮我弄清楚了。你和迪拉杰帮我弄明白了。