无用的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.它没有正确处理一些元素=>元素在树中被完全省略并被忽略 – >因此我原来的问题