我在firebug中遇到了这个错误:
SyntaxError: missing ] after element list
[object Object]
以下javascript代码:
for ( var i = 0; i < 4; i++ ) {
setTimeout( function(){
closeBtn( i,'.lt400' );
// the error exactly happened in next line:
setTimeout($('#uploaded-holder').hide(), i * 300 );
}, i * 300 );
}
我不知道如何在那里失踪..顺便说一句,在Chrome中我得到了这个错误:
Uncaught SyntaxError: Unexpected identifier
答案 0 :(得分:7)
setTimeout
期望一个函数或一串代码作为第一个参数。您正在传递此表达式的评估结果:
$('#uploaded-holder').hide()
此表达式既不返回字符串,也不返回函数。它返回一个jQuery集合。
你想:
setTimeout(function () {
$('#uploaded-holder').hide();
}, i * 300 );
但是,由于setTimeouts和循环的组合,你有一组奇怪的代码。一旦这个错误得到解决,我预计会有一些奇怪的怪异。例如,i
不会出现在执行许多内部函数时的预期......
答案 1 :(得分:1)
你可以尝试使用它: -
setTimeout( function ()
{ $('#uploaded-holder').hide() }, i * 300 );
而不是
setTimeout($('#uploaded-holder').hide(), i * 300 );
因为setTimeout需要字符串或函数作为第一个参数。
答案 2 :(得分:0)
您也可以试试这个,这也有效
setTimeout(&#34; $(&#39;#uploaded-holder&#39;)。hide()&#34;,i * 300);
在双引号中添加第一个参数。