Ответ 1
Уже существует jQuery-метод delay, и он ожидает строку (queueName), а не функцию как параметр. Выберите другое имя для метода задержки, чтобы избежать конфликтов.
У меня есть sniplet кода в 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-метод delay, и он ожидает строку (queueName), а не функцию как параметр. Выберите другое имя для метода задержки, чтобы избежать конфликтов.
У меня такая же ошибка, когда я писал
setTimeout(updateStatus(), 5000);
вместо
setTimeout(updateStatus, 5000);
Я согласен с wsbaser. У меня был дополнительный экземпляр, необходимый для передачи информации функции, и для простоты:
setTimeout(function(){ updateStatus(myData) } , 5000);
Аргумент должен быть функцией, а не вызываемой функцией. Firefox поймал эту ошибку, хром отпустил ее.
Просто для справки, если кто-то наткнулся на этот вопрос и ищет возможный ответ. Я получил то же сообщение об ошибке, что и исходный плакат, потому что я смешивал порядок аргументов setTimeout
.
Это:
setTimeout(25, function(){
spotlight.intro.find('#intro').ellipsis();
});
... дал мне сообщение об ошибке. Я изменил функцию на это:
setTimeout(function(){
spotlight.intro.find('#intro').ellipsis();
}, 25);
И моя проблема была решена.
Проблема была в Firefox 3. Он не обрабатывает некоторые элементы правильно = > Элемент полностью опущен в дереве и игнорируется → следовательно, моя оригинальная проблема