2014-12-09 2 views
0

Любой один знаю, почему

$.on.apply(this, args); 

дает мне «неперехваченным TypeError: Не удается прочитать свойство„применить“неопределенных»

Я знаю наверняка, что $ .он является определены в JQuery:/

+0

какой a вы пытаетесь достичь? –

+0

Я пытаюсь связать события на настраиваемом объекте – Elfy

+0

применить неопределенные показания $ undefined. – artm

ответ

3

метод on() связан с $.fn$

$.fn.on.apply(this, args); 
+0

теперь я получаю Uncaught TypeError: undefined не является функцией – Elfy

+0

Что такое версия jQuery –

+0

это последняя. он работает, если я использую его с элементом html – Elfy

1

Я думаю, что ваш синтаксис неверен. использования синтаксис как

$('el').on("click", function() { 
     alert($(this).text()); 
     }); 
+1

вместо '$ (this) .text', вы можете просто написать' this.textContent'. Это избавляет вас от множества вызовов функций. –

1

Вы знаете наверняка $.on определен, хорошо ... Я прошу отличаться:

console.log($.on);//undefined 
console.log($.fn.on);//function (a,c,d,e,f) 
console.log($().on);//function... 

Не уверен, правда, что то, что вы пытаетесь сделать, это действительное case-case для jQuery's on, кроме того, применение функции on к пользовательскому объекту не дает этому магическому объекту объектов ... Я имею в виду: это не так, что этот объект внезапно станет кликабельным, если это всего лишь объектный литерал

+0

Я знаю, я просто пытаюсь использовать систему событий jQuery в своем приложении. ppl говорит, что вы можете использовать события на пользовательских объектах: https://forum.jquery.com/topic/triggering-custom-events-on-js-objects#14737000000743154 – Elfy

+0

нашел информацию здесь: http://stackoverflow.com/ вопросы/1553342/заказ событий в-JQuery-что-разве гранично-к-а-РОМ элемента. Кажется, что работает, если я вызываю() нормально, но если я использую apply, я получаю эту странную ошибку:/ – Elfy

+0

@Elfy: jQuery на самом деле не имеет собственной системы событий, она просто заходит в цикл событий JS и предоставляет совместимый API для него. Однако вы можете регистрировать _ «поддельные» _ события и вручную вызывать обработчик: 'jQObject.trigger ('myevent');', но это все равно означает, что вы должны _manually_ запускать событие и, скорее, поражать точку, imo –