ajax成功延迟不起作用
delay in ajax success not working
这是我的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 !
而我想要的是显示CCD_ 5然后等待3秒然后显示Save
。我怎样才能做到这一点?thnaks
$this
为按钮。
[更新]使用setTimeout(function(){ /* your code */},3000);
更新:如果您仍然想使用jquery延迟,请这样写:
$('#dd').val('firstVal').delay(2000).queue(function(){$(this).val('SecondVal');}).delay(...;
演示
这是因为"delay()"的默认队列是"fx",它不会自动包含val(),所以你只需要将其添加到其中。
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!');
setTimeout(function() { $this.val('Save'); }, 3000);
}
}
});
使用setTimeout(函数,时间)是最佳解决方案
但是,如果你想为按钮设置动画,你可以使用jQuery.animate()
var $this = $(this);
$this.val("Saved!").animate(
{ opacity: 0.99 }, //transition
2000, //duration
function() { //animation complete
$this.val("Save");
});
相关文章:
- jQuery Banner Rotator插件中的延迟设置不起作用
- 角度路由分辨率 - 延迟.拒绝不起作用 - 角度 1 + 打字稿
- 每个循环的 JQuery 延迟对后置请求不起作用
- 延迟加载在引导轮播中不起作用
- 下拉延迟不起作用
- 循环内部的延迟不起作用
- 一种自定义动画 - 延迟不起作用
- 脚本延迟在 IE11 上不起作用
- 延迟链接ajax不起作用
- 为什么javascript setTimeout延迟不起作用,setInterval太慢
- 为什么这个函数在ie7,8(延迟和衰落)上不起作用
- jquery keyup()延迟不起作用
- jQuery fadeOut延迟在页面加载后第一次不起作用
- ajax成功延迟不起作用
- 为什么我的工具提示的延迟时间选项不起作用?
- 延迟加载效果似乎在我的页面上不起作用
- setTimeout延迟不起作用-我做错了什么
- 在发送ajax请求之前延迟不起作用
- 自定义延迟加载函数将数据加载到容器中后,jQuery函数OnClick不起作用
- Javascript延迟不起作用