2012-01-26 2 views
2

Я получаю сообщение об ошибке странного внутри мобильного сафари на прошивке:Функция применяется в мобильном сафари

«TypeError:„[объект Object]“не является допустимым аргументом„Function.prototype.apply“».

Код, который запускает это, отлично работает в Chrome (после настройки типа события нажмите, а не нажмите).

// task-item visualization 
    $(".task-item").live('touchend',function(e){ 
     app.toggleTask.apply(this,e); 
    }); 

Я использовал, чтобы иметь .toggleTask прямо как анонимную функцию внутри связующего события, но я стараюсь, чтобы реорганизовать из всего этого материала, так что я могу использовать его. Что мне не хватает? Я передаю это в контексте события к функции с применением, но это не похоже на этот аргумент в мобильном сафари (угадывая ту же ошибку в телефонной запиксе, но не может ее видеть).

Проект использует Zepto 0.7, phonegap 1.2 и находится на iOS5 ipad.

+1

Пробный 'app.toggleTask.apply (это, аргументы);'? –

ответ

5

Согласно MDN, the apply method принимает в качестве второго аргумента массив. Вы хотите попробовать:

// task-item visualization 
$(".task-item").live('touchend',function(e){ 
    app.toggleTask.apply(this,[e]); 
}); 
+0

Отлично, отлично работает. Это не было «это», это было ошибкой, так как вы видели второй аргумент. Странно, что он отлично работает в хроме! – dmp