正在加载消息和setTimeout

osh*_*nen 3 javascript jquery

我有以下脚本:

$(function() {
    $(".message").hide();

    function simulate_ajax_call()
    {
        $.ajax({
            url: "/echo/json/",
            success: function(){
                alert("done");
                $(".message").empty().html("done");
                $(".message").delay(1000).fadeOut(500);
            }
        });
    }

    $('.button').click(function() {
        $(".message").fadeIn(500);
        setTimeout("simulate_ajax_call()", 5000);
    });
});
Run Code Online (Sandbox Code Playgroud)

使用以下HTML:

<input type="button" value="button" class="button" />
<div class="message">loading...</div>
Run Code Online (Sandbox Code Playgroud)

由于某种原因,该setTimeout部分不起作用.即它似乎在5000ms后没有调用该函数.

jsFiddle.

Sar*_*raz 9

你需要替换:

setTimeout("simulate_ajax_call()", 5000);
Run Code Online (Sandbox Code Playgroud)

有:

setTimeout(simulate_ajax_call, 5000);
Run Code Online (Sandbox Code Playgroud)

查看工作示例


你应该避免放在()函数名的末尾,否则会立即调用/运行 :)