我想使用.delay()
方法等待1秒钟,然后再更改元素的内容。在我的页面中,我有一个按钮,当ajax请求完成时,该按钮将显示“完成”。之后,我想等待1秒钟并显示“下载”。但是问题是“下载”之后立即显示“下载”,没有延迟。
这是我的代码:
$('#chocobo').click(function(){
$('#chocobo').html('<div id="banana" class="fa fa-refresh fa-spin"></div> Loading');
$.post("includes/modlist/pack.php",function(data){
//$('#banana').addClass("fa-spin");
$('#chocobo').addClass('done');
$('#chocobo').html('<div id="banana" class="fa fa-check"></div> Done');
$('#chocobo').delay(1000).html('<div id="banana" class="fa fa-refresh"></div> Download');
});
});
有人能帮助我吗 ?
最佳答案
我认为在这里最好不要利用delay()
。您只需要使用setTimeout
就可以了。注意以下几点...
[...]
$('#chocobo').html('<div id="banana" class="fa fa-check"></div> Done');
setTimeout(function() {
$('#chocobo').html('<div id="banana" class="fa fa-refresh"></div> Download');
}, 1000);
[...]
有关示例用法和场景,请参见delay()文档。
JSFiddle Link-简化的演示