我知道它非常基本,但我无法让它工作。它不断抛出“预期对象”错误......
$(document).ready(function(){
setTimeout('showMessage()', 1000);
function showMessage() {
alert('abc');
}
});
我知道它非常基本,但我无法让它工作。它不断抛出“预期对象”错误......
$(document).ready(function(){
setTimeout('showMessage()', 1000);
function showMessage() {
alert('abc');
}
});
你有一个范围问题:showMessage()
只对匿名函数可见,但是当参数setTimeout()
被评估时,运行时已经离开了范围。
直接使用函数作为参数setTimeout()
并摆脱 evil[TM] 字符串评估:
setTimeout(showMessage, 1000);
该setTimeout
方法最好与函数一起使用,而不是字符串。因此,最好的方法是这样的:
$(document).ready(function() {
setTimeout(showMessage, 1000);
});
function showMessage() {
alert('abc');
}
问题是 showMessage 函数是在 ready 事件中声明的,而 setTimeout("showMessage()", 1000) 将在全局范围内查找它。您可以将其声明移至全局范围,例如 out of ready 事件,或使用 SLaks 答案:setTimeout(showMessage, 1000)
您已将函数用引号括起来,因此它将其视为字符串,而不是它所期望的对象,因此,就像 SLaks 所说:
$(document).ready(function(){
setTimeout(showMessage, 1000);
function showMessage() {
alert('abc');
}
});