我有一个$image
我.fadeIn
和.fadeOut
,然后.remove
完成后.fadeOut
。这是我的代码:
$image
.fadeIn()
.fadeOut(function() {
$(this).remove();
});
我想在.delay
之后添加.fadeOut
,.remove
仅在$image
完成后添加.delay
。我试过了:
$image
.fadeIn()
.fadeOut()
.delay(1000, function() {
$(this).remove();
});
问题是.delay
doest 不接受回调函数。我如何.remove
将图片作为.delay
的回调?
答案 0 :(得分:54)
您可以使用queue()方法安排自己的函数在delay()
完成后运行:
$image.fadeIn()
.fadeOut()
.delay(1000)
.queue(function(next) {
$(this).remove();
next();
});
答案 1 :(得分:5)
您可以随时执行以下操作:
$image
.fadeIn()
.fadeOut(function() {
var self = this; // Not sure if setTimeout
// saves the pointer to this
setTimeout(function() {
$(self).remove();
}, 1000)
});
答案 2 :(得分:-1)
据我所知,您可以在延迟通话后绑定上的电话,如下所示:
$image
.fadeIn()
.fadeOut()
.delay(1000)
.remove()
});
例如来自the documentation的以下示例:
$('#foo').slideUp(300).delay(800).fadeIn(400);
排队物品执行的气质也在那里拼写:
... .delay()方法允许我们延迟 在队列中执行跟随它的函数。它可以使用 使用标准效果队列或使用自定义队列。只要 队列中的后续事件被延迟;例如,这不会 延迟不使用的.show()或.hide()的无参数形式 效果排队。
阅读文档以获取有关哪个队列延迟的更多信息,如果您遇到可能需要指定的默认fx
队列的麻烦。