回调.delay()

我有一个$image .fadeIn.fadeOut $image ,然后.fadeOut完成后.fadeOut .remove 。 这是我的代码:

 $image .fadeIn() .fadeOut(function() { $(this).remove(); }); 

我想在.delay之后添加一个.delay ,并且只.delay一次$image .delay已完成。 我试过了:

 $image .fadeIn() .fadeOut() .delay(1000, function() { $(this).remove(); }); 

问题是.delay 接受回调函数。 我怎样才能将图片作为对.delay的回调.delay

您可以使用queue()方法来安排自己的函数在delay()完成后运行:

 $image.fadeIn() .fadeOut() .delay(1000) .queue(function(next) { $(this).remove(); next(); }); 

你可以随时这样做:

 $image .fadeIn() .fadeOut(function() { var self = this; // Not sure if setTimeout // saves the pointer to this setTimeout(function() { $(self).remove(); }, 1000) }); 

据我所知,你可以在延迟通话打电话,如下:

 $image .fadeIn() .fadeOut() .delay(1000) .remove() }); 

例如在以下示例中来自文档 :

 $('#foo').slideUp(300).delay(800).fadeIn(400); 

排队物品执行的气质也在那里拼写:

… .delay()方法允许我们延迟队列中跟随它的函数的执行。 它可以与标准效果队列一起使用,也可以与自定义队列一起使用。 只有队列中的后续事件才会延迟; 例如,这不会延迟不使用效果队列的.show()或.hide()的无参数forms。

阅读文档以获取有关延迟哪个队列的更多信息,如果您在使用默认fx队列时遇到问题,则可能需要指定一个队列。