setTimeout无法正常工作,我在这里遗漏了什么吗?

man*_*j82 0 javascript jquery settimeout

我知道它很基本,但我无法让它工作.它不断抛出"对象预期"错误......

 $(document).ready(function(){   
    setTimeout('showMessage()', 1000); 

    function showMessage() { 
        alert('abc');
    } 
    });
Run Code Online (Sandbox Code Playgroud)

Chr*_*oph 8

你有一个范围问题:showMessage()只有匿名函数可见,但是当要setTimeout()评估的参数时,运行时已经离开了范围.

直接使用函数作为参数setTimeout()并摆脱邪恶的[TM]字符串评估:

setTimeout(showMessage, 1000); 
Run Code Online (Sandbox Code Playgroud)


SLa*_*aks 6

setTimeout方法最好与函数一起使用,而不是字符串.因此,最好的方法是这样:

$(document).ready(function() {
    setTimeout(showMessage, 1000);
});

function showMessage() { 
    alert('abc');
}
Run Code Online (Sandbox Code Playgroud)