$('#gallerie ul li:eq(1)').animate({opacity: 1}, 1250).remove(); //results in instand remove
$('#gallerie ul li:eq(1)').delay(3000).remove(); //instant remove
$('#gallerie ul li:eq(1)').remove().delay(3000); //that didnt work either
如何在3秒后移除物体而不是立即移除?
答案 0 :(得分:8)
setTimeout(function(){
$('#gallerie ul li:eq(1)').remove();
},3000);
答案 1 :(得分:5)
如果您想以.delay
方式进行,则需要合并.queue
:
$("#gallerie ul li:eq(1)").delay(3000).queue(function() {
$(this).remove();
});
答案 2 :(得分:2)
delay
方法用于动画,因此只有在其后链接的动画方法才会被延迟。 delay
方法在动画队列上放置延迟,它不会延迟代码的执行。
要在动画后删除元素,可以使用它的回调方法。例如:
$('#gallerie ul li:eq(1)').fadeOut(3000, function() {
$(this).remove();
});
答案 3 :(得分:2)
The manual page说(很明显,实际上):
“在版本1.4中添加到jQuery,.delay()
方法允许我们延迟队列中跟随它的函数的执行。它可以与标准效果队列或自定义队列一起使用。队列中的事件被延迟;例如,这不会延迟不使用效果队列的.show()
或.hide()
的无参数形式。“
remove()
不会使用效果队列。
您可以使用jQuery的fadeOut()
,hide()
...或完全等同于您的原始尝试Javascript's basic setTimeout
function.
希望有所帮助。
答案 4 :(得分:0)
你可以这样做:
setTimeout(function(){
$('#gallerie ul li:eq(1)').remove();
},3000);
答案 5 :(得分:0)
怎么样:
$('#gallerie ul li:eq(1)').animate({opacity: 1}, 1250,function(){
$(this).remove();
});