我想使用.delay()方法等待1秒钟,然后再更改元素的内容。在我的页面中,我有一个按钮,当ajax请求完成时,该按钮将显示“完成”。之后,我想等待1秒钟并显示“下载”。但是问题是“下载”之后立即显示“下载”,没有延迟。

这是我的代码:

 $('#chocobo').click(function(){
   $('#chocobo').html('<div id="banana" class="fa fa-refresh fa-spin"></div>&nbspLoading');
   $.post("includes/modlist/pack.php",function(data){
        //$('#banana').addClass("fa-spin");
        $('#chocobo').addClass('done');
        $('#chocobo').html('<div id="banana" class="fa fa-check"></div>&nbspDone');
        $('#chocobo').delay(1000).html('<div id="banana" class="fa fa-refresh"></div>&nbspDownload');
   });
});

有人能帮助我吗 ?

最佳答案

我认为在这里最好不要利用delay()。您只需要使用setTimeout就可以了。注意以下几点...

[...]

$('#chocobo').html('<div id="banana" class="fa fa-check"></div>&nbspDone');

setTimeout(function() {
    $('#chocobo').html('<div id="banana" class="fa fa-refresh"></div>&nbspDownload');
}, 1000);

[...]



有关示例用法和场景,请参见delay()文档。

JSFiddle Link-简化的演示

09-17 11:57
查看更多