2012-11-03 35 views
0

我正在使用jQuery UI插件和最新的jQuery。如何在添加一個類時設置順序延遲?

我想按順序添加一個類,依次添加我的元素數組。現在,我有這樣的:

$(@el).addClass("gridBoxComplete", 400, "easeOutBounce").delay(800) 

哪裏@el是數組中的當前元素。但是,這在迭代中的下一個項目運行之前不會延遲該對象。我根據這個動畫大概過這種想法..

$(@).hide().each (index) -> 
    $(@) 
    .delay(index * 100) 
    .fadeIn 500 
+3

,我不知道該cofeecrap做什麼,但'延遲()'是動畫,而不是添加類,使用超時。 – adeneo

+0

又一次咖啡仇恨? :D – Trip

+2

:堅持舉手:「禮物」 – enhzflep

回答

3

delay()延遲動畫,而不是類名的更改或其他代碼的執行。如果你想通用實施延時,使用setTimeout或類似的東西:

$.fn.wait = function(ms, callback) { 
    return this.each(function() { 
    setTimeout(callback.bind(this), ms) 
    }) 
} 

$(@el).addClass("gridBoxComplete", 400, "easeOutBounce").wait(800, function() { 
    $(this).addClass("something"); 
}); 
+0

哇,這是一個好主意。 – Trip

+0

嗯..這個自定義函數返回'意外標識符' – Trip

+1

那是怎麼回事?在這裏工作得很好:http://jsfiddle.net/Mqgju/ – David