Javascript SyntaxError:元素列表[对象]后缺少]

Javascript SyntaxError:元素列表[对象]后缺少],javascript,Javascript,我在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 li

我在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 ); 
}

您可以尝试使用以下方法:-

setTimeout( function () 
{ $('#uploaded-holder').hide() }, i * 300 );
而不是

setTimeout($('#uploaded-holder').hide(), i * 300 );
as需要字符串或函数作为第一个参数。

需要函数或代码字符串作为第一个参数。您正在传递此表达式的计算结果:

$('#uploaded-holder').hide()
此表达式既不返回字符串,也不返回函数。它返回一个jQuery集合

你想要:

setTimeout(function () {
    $('#uploaded-holder').hide();
}, i * 300 );

考虑到设置超时和循环的组合,这里有一组奇怪的代码。一旦这个错误得到解决,我希望它会带来一些疯狂的怪事。例如,
i
在许多内部函数的执行中并不是您所期望的…

您也可以尝试一下,这也很有效

setTimeout(“$”(“#上传的持有者”).hide()”,i*300)


在双引号内添加第一个参数。

better
setTimeout(函数(){$('#upload holder').hide()},i*300)是的,我做了,没关系,谢谢:)很高兴听到,这很有帮助:)或者他可以简单地做
setTimeout($(“#上传持有者”).hide,i*300)
@AlexW我还没有测试过它,但我相信这会导致jQuery集合实例内部的
这个
的范围界定问题
setTimeout(function () {
    $('#uploaded-holder').hide();
}, i * 300 );