我知道它很基本,但我无法让它发挥作用。它不断抛出“预期的对象”错误......
$(document).ready(function(){
setTimeout('showMessage()', 1000);
function showMessage() {
alert('abc');
}
});
答案 0 :(得分:8)
你遇到了一个范围问题:showMessage()
仅在匿名函数中可见,但是当setTimeout()
的参数被评估时,运行时已经离开了范围。
直接使用函数作为setTimeout()
的参数,摆脱邪恶的[TM]字符串评估:
setTimeout(showMessage, 1000);
答案 1 :(得分:6)
setTimeout
方法最好与函数一起使用,而不是字符串。因此,最好的方法是:
$(document).ready(function() {
setTimeout(showMessage, 1000);
});
function showMessage() {
alert('abc');
}
答案 2 :(得分:1)
问题是showMessage函数在ready事件中声明,而setTimeout(“showMessage()”,1000)将在全局范围内查找它。您可以将其声明移至全局范围,例如out of ready事件,或使用SLaks回答:setTimeout(showMessage,1000)
答案 3 :(得分:-2)
您已将函数包装在引号中,因此它将其视为字符串,而不是它所期望的对象,因此,就像SLaks所说:
$(document).ready(function(){
setTimeout(showMessage, 1000);
function showMessage() {
alert('abc');
}
});