首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在jQuery .each()的每次迭代之间添加暂停?

如何在jQuery .each()的每次迭代之间添加暂停?
EN

Stack Overflow用户
提问于 2011-03-05 15:32:03
回答 7查看 94.5K关注 0票数 82

我获取了一个jQuery对象数组,然后通过.each()修改数组中的每个单独的jquery。

在本例中,我更新了类名,以触发-webkit- transition -property来利用css转换。

我希望在每个css转换开始之前有一个暂停。我使用的是以下代码,但在每次更新之间没有延迟。相反,它们似乎都在一次更新。

代码语言:javascript
复制
function positionCards() {
  $cards = $('#gameboard .card');
  $cards.each(function() {
      setTimeout( function(){ addPositioningClass($(this)); }, 500 )
  });
}

function addPositioningClasses($card){
  $card
    .addClass('position')
}

我希望setTimeout能解决这个问题,但它似乎不起作用。有没有办法在每个对象的每个类名更新之前完成暂停?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-03-05 15:44:40

我添加了这篇评论,但现在我已经正确地阅读了它,并回答了我自己的问题,这可能会起作用:

代码语言:javascript
复制
function positionCards() {
  var $cards = $('#gameboard .card');

  var time = 500;

  $cards.each(function() {
      setTimeout( function(){ addPositioningClass($(this)); }, time)
      time += 500;
  });
}
票数 103
EN

Stack Overflow用户

发布于 2012-08-03 21:44:54

很抱歉挖掘了一个老帖子,但这篇技巧对类似的问题可能很有用:

代码语言:javascript
复制
$cards.each(function(index) {
    $(this).delay(500*index).addClass('position');
});
票数 51
EN

Stack Overflow用户

发布于 2011-03-05 15:51:56

.delay()呢?

代码语言:javascript
复制
function addPositioningClasses($card){
  setTimeout(function() { $card.addClass('position')}, 1000);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5202403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档