jquery - jQuery 的 .each() 方法是并行还是顺序运行其语句?

标签 jquery each

在我的 HTML 页面中,我有 4 个列表项和以下 jQuery 代码:

$('li').hide().each(function() {
    $(this).delay(500).fadeIn(1000);
});

我假设 .each() 函数内的语句将为第一个列表项运行,将完成,然后为第二个列表项运行,等等。

但是,所有四个列表项完全同时淡入。这是否意味着该语句对所有列表项并行运行?

有没有办法让列表项一次淡入一个?

最佳答案

由于动画是异步的,因此循环不会等待每个动画完成后再继续下一次迭代

循环将在短短几毫秒内完成,因此每个项目都将具有相同的视觉延迟。

要递增,最简单的方法是使用循环索引作为乘数,这样它们就会有效地交错

$('li').hide().each(function(i) {
    // "i" is array index of current instance
    // delays will thus be 0*500 ... 1*500 .... n*500
    $(this).delay(i*500).fadeIn(1000);
});

关于jquery - jQuery 的 .each() 方法是并行还是顺序运行其语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37232576/

相关文章:

jQuery - 如何使用 Each() 方法循环并更改页面加载上的所有复选框

javascript - Jquery 每个等待模态关闭

javascript - 如何在 IE8 中停止事件传播

css - 如何在嵌套 sass 映射 (SCSS) 中执行 'if' 语句?

javascript - 忽略包含下拉菜单的 gridview 单元格

jquery - 带有 jQ​​uery 的粘性导航栏

javascript - jQuery 在 .each 循环中获取输入值

javascript - 使用 jQuery 通过循环验证一系列单选按钮

javascript - 如果描述采用默认大小,如何禁用“阅读更多”链接

jquery - 在 jquery 中保持鼠标悬停菜单