如何使用JS或jQuery添加sleep或等待JS?

时间:2013-10-22 14:19:55

标签: javascript jquery

如何从此函数ShowSC()

添加睡眠
function ShowSC(){
 $("#SC").html('LOADING');
 //adding the sleep 1 second
 $("#SC").html('<img src="secure/captcha/securimage_show.php" class="img_middle" />');
}

提前感谢!

抱歉,我无法找到其他问题的解决方案,所以我只是在这里提出一个问题。

2 个答案:

答案 0 :(得分:5)

你可以使用setTimeout,它在等待指定的毫秒后执行一次函数

function ShowSC(){
     $("#SC").html('LOADING');

     //adding the sleep 1 second
     setTimeout(function(){
        $("#SC").html('<img src="secure/captcha/securimage_show.php" class="img_middle" />');
     }, 1000);
}

此处1000以毫秒为单位

答案 1 :(得分:1)

jQuery Way™将使用delayqueue

$('#SC')
    .html('LOADING')
    .delay(1000)
    .queue(function (n) {
        $(this).html('<img src="secure/captcha/securimage_show.php" class="img_middle" />');
        n();
    });

它有助于维护可链接的代码,这些代码往往更具可读性。可读代码更易于维护和扩展。

vanilla JavaScript方法是在setTimeout中使用回调:

$('#SC').html('LOADING');
setTimeout(function () {
    $('#SC').html('<img src="secure/captcha/securimage_show.php" class="img_middle" />');
}, 1000);

setTimeout次调用中联系setTimeout次来电可能会以回调arrow code结束,因此即使您不使用jQuery,我也建议您使用排队。你想要使用某种排队。

以下示例使用我编写的Queue类:
(function () {
    var sc,
        q;
    q = new Queue();
    sc = document.getElementById('SC');
    sc.innerHTML = 'LOADING';
    q.queue(function (n) {
        setTimeout(n, 1000);
    },function (n) {
        sc.innerHTML = '<img src="secure/captcha/securimage_show.php" class="img_middle" />';
        n();
    });
}());