Найти функции обратного вызова, добавленные с помощью jQuery для элементов DOM - PullRequest
2 голосов
/ 14 января 2009

В настоящее время я тестирую это в Mozilla FireFox 3.0.5, используя FireBug 1.3.0 с jQuery 1.2.6.

Первая попытка

document.getElementById("x").onfocus = function ()
{
    var helloWorld = "Hello World";
};

Консоль FireBug:

document.getElementById ("helloworld"). Onfocus.toString () = тело функции в виде строки

$ ("# helloworld"). Get (0) .onfocus.toString () = тело функции в виде строки


Вторая попытка

$("#helloworld").focus(function ()
{
    var helloWorld = "Hello World";
});

Консоль FireBug:

document.getElementById ("helloworld"). Onfocus.toString () = FireBug ничего не возвращает

$ ("# helloworld"). Get (0) .onfocus.toString () = FireBug ничего не возвращает


Что мне здесь не хватает? Почему я не могу найти обратные вызовы при присоединении их с помощью jQuery?

Ответы [ 2 ]

6 голосов
/ 14 января 2009

Для просмотра событий, связанных с jQuery, используйте:

$("#helloworld").data('events');

Если вы привяжете фокус в соответствии с вашим примером и запустите выше в консоли Firebug, он вернет

Object focus=Object
4 голосов
/ 14 января 2009

jQuery не прикрепляет обратные вызовы напрямую, а хранит их внутри в реестре. Всякий раз, когда происходит событие, jQuery просматривает реестр и вызывает обратный вызов, который вы запрашивали ранее.

Это дает вам преимущество, заключающееся в возможности объединения нескольких обратных вызовов в событие одного элемента, но имеет тот недостаток, что вы должны использовать процедуры обработчика событий jQuery для установки, получения и удаления обратных вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...