回调.delay()

Ran*_*lue 23 jquery

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

$image
   .fadeIn()
   .fadeOut(function() {
      $(this).remove();
   });
Run Code Online (Sandbox Code Playgroud)

我想添加.delay.fadeOut,并.remove$image一次.delay完成.我试过了:

$image
   .fadeIn()
   .fadeOut()
   .delay(1000, function() {
      $(this).remove();
   });
Run Code Online (Sandbox Code Playgroud)

问题是.delaydoest 接受回调函数.我怎么.remove把图片作为回调.delay

Fré*_*idi 54

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

$image.fadeIn()
      .fadeOut()
      .delay(1000)
      .queue(function(next) {
          $(this).remove();
          next();
      });
Run Code Online (Sandbox Code Playgroud)


Lap*_*ple 5

你可以随时这样做:

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