我想动画以略微不同的时间清除项目列表,比如以20ms的间隔。 (当您清除消息时,请考虑Android 4.2警报屏幕。)
但是,我不能在间隔时间弄清楚如何addClass
到数组中的不同元素。我试过这个,但这只是将jQuery应用到最后一个元素:
for item in App.itemsController.content
jQuery('#box').delay(2000).queue (n) ->
selector = '.' + item.objectId
console.log selector
$(selector).addClass('animated fadeOutRightBig')
我还试过setTimeout()
和setInterval()
无济于事。
感谢。
答案 0 :(得分:2)
您需要使用闭包来保持对item变量的引用。我不使用CoffeeScript,但在javascript中我会这样做。
var box = jQuery('#box');
for (var i in App.itemsController.content) {
var item = App.itemsController.content[i];
(function(item) {
box.delay(2000).queue(function() {
var selector = '.' + item.objectId;
$(selector).addClass('animated fadeOutRightBig');
});
}(item));
}
也许这就是你在CoffeeScript中的表现?只是快速浏览一下语法。
for item in App.itemsController.content
do (item) ->
jQuery('#box').delay(2000).queue (n) ->
selector = '.' + item.objectId
console.log selector
$(selector).addClass('animated fadeOutRightBig')
您还应该在循环外部引用#box元素,否则您的程序必须在每次迭代时搜索DOM。