javascript - ajax成功延迟不起作用

标签 javascript jquery ajax

这是我的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') ;


               }               }
         }); 

实际上这段标有--->的代码并没有延时显示直接Save

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

我想要的是显示 Saved ! 然后等待 3 秒然后显示 Save 。我怎样才能做到这一点?谢谢

$this 是按钮。

最佳答案

[更新] 使用 setTimeout(function(){/* 你的代码 */},3000);

更新:如果你还想使用jquery延迟,这样写:

$('#dd').val('firstVal').delay(2000).queue(function(){$(this).val('SecondVal');}).delay(...;

DEMO

这是因为 'delay()' 的默认队列是 'fx',它不会自动在其中包含 val(),因此您只需将其添加到其中即可。

关于javascript - ajax成功延迟不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17332976/

相关文章:

jquery - 聚合/收集 AJAX 请求

javascript - 如何通过 JQuery 从 HTML 元素获取实时数据?

javascript - 动态更改内容并替换当前 URL

javascript - 我如何获得网站中最顶部定位图像的链接?

javascript - 将函数传递给属性

javascript - vue模板 mustache 标签中的动态参数

jquery 将一个 div 缩放到其父 div 的中心

jquery - 从驻留在 <a> 标记内的图像中获取 "alt"属性

javascript - jQuery/AJAX 更改我的变量

javascript - 浏览器清除表单数据