我尝试在点击li
后向button
元素添加一个类。
目标是一次添加一个类,延迟时间介于两者之间。它似乎适用于fadeOut
函数,但不适用于addClass
或相关函数。
这是一个Jsfiddle.net演示http://jsfiddle.net/4ANCj/3/
和部分代码
$("button").click(function() {
$('li').each(function(index) {
$(this).delay(900*index).addClass("hi");
});
});
我知道这里有一个similar问题,但它没有削减它。
答案 0 :(得分:2)
addClass
不是动画功能,因此不会添加到效果队列中。您可以改为使用.queue
[docs](默认情况下添加到效果队列):
$(this).delay(900*index).queue(function(next) {
$(this).addClass("hi");
next();
});
或者使用setTimeout
[MDN]作为非jQuery解决方案:
$("button").click(function() {
var lis = $('li').get();
function run() {
var li;
if(li = lis.shift()) {
$(li).addClass('hi');
setTimeout(run, 900);
}
}
setTimeout(run, 900);
});