Javascript 无效的setTimeout调用(参数周围缺少引号?)
我在jQuery中有一小部分代码Javascript 无效的setTimeout调用(参数周围缺少引号?),javascript,jquery,settimeout,firefox3.6,Javascript,Jquery,Settimeout,Firefox3.6,我在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);
$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
});
});
延迟
声明为:
jQuery.fn.delay = function(time,func){
return this.each(function(){
setTimeout(func,time);
});
};
现在我得到一个错误:
无效的setTimeout调用(参数周围缺少引号?)
火狐6+还可以。有什么想法吗?为什么会发生这种情况?已经存在一个jQuery方法,它需要一个字符串(queueName),而不是一个函数作为参数。
为延迟方法选择另一个名称以避免冲突 问题出在Firefox3上。它没有正确地处理某些元素=>元素在树中被完全忽略->因此,如果有人偶然发现这个问题并正在寻找可能的答案,我的原始问题仅供参考。我得到了与最初海报完全相同的错误消息,因为我混淆了
setTimeout
参数顺序
这:
。。。给了我错误信息。我将函数更改为:
setTimeout(function(){
spotlight.intro.find('#intro').ellipsis();
}, 25);
我的问题也解决了。我在写作时也犯了同样的错误
setTimeout(updateStatus(), 5000);
而不是
setTimeout(updateStatus, 5000);
我同意wsbaser的观点。我有一个额外的实例,需要将信息传递给函数,为了简单起见,使用了:
setTimeout(function(){ updateStatus(myData) } , 5000);
参数必须是函数,而不是被调用的函数。Firefox发现了这个错误,chrome放弃了。很抱歉,这并没有解决这个问题。这个问题的答案既没有帮助,也没有描述性。OP已经正确调用了这个方法!这不是问题所在。在第一个参数中,他已经在传递一个指向函数的指针。
setTimeout(function(){ updateStatus(myData) } , 5000);