我获取了一个jQuery对象数组,然后通过.each()修改数组中的每个单独的jquery。
在本例中,我更新了类名,以触发-webkit- transition -property来利用css转换。
我希望在每个css转换开始之前有一个暂停。我使用的是以下代码,但在每次更新之间没有延迟。相反,它们似乎都在一次更新。
function positionCards() {
$cards = $('#gameboard .card');
$cards.each(function() {
setTimeout( function(){ addPositioningClass($(this)); }, 500 )
});
}
function addPositioningClasses($card){
$card
.addClass('position')
}
我希望setTimeout能解决这个问题,但它似乎不起作用。有没有办法在每个对象的每个类名更新之前完成暂停?
发布于 2011-03-05 15:44:40
我添加了这篇评论,但现在我已经正确地阅读了它,并回答了我自己的问题,这可能会起作用:
function positionCards() {
var $cards = $('#gameboard .card');
var time = 500;
$cards.each(function() {
setTimeout( function(){ addPositioningClass($(this)); }, time)
time += 500;
});
}
发布于 2012-08-03 21:44:54
很抱歉挖掘了一个老帖子,但这篇技巧对类似的问题可能很有用:
$cards.each(function(index) {
$(this).delay(500*index).addClass('position');
});
发布于 2011-03-05 15:51:56
那.delay()呢?
或
function addPositioningClasses($card){
setTimeout(function() { $card.addClass('position')}, 1000);
}
https://stackoverflow.com/questions/5202403
复制相似问题