这是我的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(...;
这是因为 'delay()' 的默认队列是 'fx',它不会自动在其中包含 val(),因此您只需将其添加到其中即可。
关于javascript - ajax成功延迟不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17332976/