在元素列表[object Object]之后的SyntaxError:missing]

Bar*_*man 2 javascript

我在firebug中遇到了这个错误:

     SyntaxError: missing ] after element list

    [object Object]
Run Code Online (Sandbox Code Playgroud)

对于以下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 ); 
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何在那里失踪..顺便说一句,在Chrome中我得到了这个错误:

Uncaught SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)

JAA*_*lde 7

setTimeout期望一个函数或一串代码作为第一个参数.您正在传递此表达式的评估结果:

$('#uploaded-holder').hide()
Run Code Online (Sandbox Code Playgroud)

此表达式既不返回字符串,也不返回函数.它返回一个jQuery集合.

你要:

setTimeout(function () {
    $('#uploaded-holder').hide();
}, i * 300 );
Run Code Online (Sandbox Code Playgroud)

考虑到setTimeouts和循环的组合,你有一组奇怪的代码.一旦这个错误得到解决,我预计会有一些奇怪的怪异.例如,i在执行许多内部函数时不会出现您的期望......