无用的setTimeout调用(参数周围缺少引号?)

我在jQuery中有这段代码

$element.parent().children().last().hide().show('slide', {direction : 'left'}, 700, function () { $element.delay(2000, function() { $element.parent().children().last().hide('slide', {direction: 'left'}, 700); reload_table(question_number); //delay ends here }); }); 

delay声明为:

 jQuery.fn.delay = function(time,func){ return this.each(function(){ setTimeout(func,time); }); }; 

现在我收到错误:

无用的setTimeout调用(参数周围缺少引号?)

FF3.x,Firefox 6+还可以。 有什么想法吗? 为什么会发生这种情况?

已存在jQuery方法延迟 ,它需要一个字符串(queueName)而不是一个函数作为参数。 为延迟方法选择另一个名称以避免冲突。

我写的时候有同样的错误

 setTimeout(updateStatus(), 5000); 

代替

 setTimeout(updateStatus, 5000); 

我同意wsbaser。 我有额外的实例需要将信息传递给函数,为简单起见使用:

 setTimeout(function(){ updateStatus(myData) } , 5000); 

参数需要是一个函数而不是被调用的函数。 Firefox发现了这个错误,Chrome让它走了。

仅供参考,如果有人偶然发现这个问题并且正在寻找可能的答案。 我得到了与初始海报完全相同的错误消息,因为我混淆了setTimeout参数顺序。

这个:

 setTimeout(25, function(){ spotlight.intro.find('#intro').ellipsis(); }); 

…给了我错误信息。 我将function更改为:

 setTimeout(function(){ spotlight.intro.find('#intro').ellipsis(); }, 25); 

我的问题解决了。

问题出在Firefox 3.它没有正确处理一些元素=>元素在树中被完全省略并被忽略 – >因此我原来的问题