延迟ajax成功不起作用

ech*_*_Me 3 javascript ajax jquery

这是我的ajax

           var $this = $(this);
 $.ajax({

      url: "process.php",
      dataType: 'json' ,
        data :{
            method:'POST',
            id :id ,
          img_val : img_val},
         type : 'POST',
       success: function(output_data){
               if (output_data.msg == 'taken'){

        --->        $this.val('Saved !').delay(3000).val('Save') ;


               }               }
         }); 
Run Code Online (Sandbox Code Playgroud)

实际上这个代码标记为--->没有工作,延迟直接显示Save

如果我删除delay(3000).val('Save')它显示Saved !

我想要的是显示Saved !然后等待3秒然后显示Save.我怎么能实现这个目标?thnaks

$this 是按钮.

CME*_*E64 8

[更新] 使用setTimeout(function(){ /* your code */},3000);

更新:如果你仍然想使用jquery延迟写这样:

$('#dd').val('firstVal').delay(2000).queue(function(){$(this).val('SecondVal');}).delay(...;
Run Code Online (Sandbox Code Playgroud)

DEMO

那是因为'delay()'的默认队列是'fx',它自动不包含val(),所以你只需要将它添加到它.