@vis0r

Реально ли с помощью инспектора найти место где на элемент вешается событие средствами JQuery?

Довольно часто бывает необходимо в чужом коде обнаружить место в котором на элемент DOM вешается событие средствами JQuery. Но в большинстве случаев, кода бывает огромное множество, и разбросан он по разным файлам. В фаерфоксе к примеру можно в дереве DOM увидеть что на элементе висит какое либо событие, и даже увидеть функцию внутри JQuery на нативном JS которая это событие повесила. Однако найти сам источник бывает не так то просто.

Вопрос скорее практический: какие существуют (если существуют вообще) способы найти данный кусок кода без особых заморочек?
  • Вопрос задан
  • 576 просмотров
Пригласить эксперта
Ответы на вопрос 4
У jquery есть хороший метод

$._data(element, "events")

С помощью него можно находить события, повешенные на элемент

8f6f54b7e72740eea475c46c2f847039.jpg

Еще есть небольшой скрипт-обертка, использующий этот метод (ссылка на гитхаб). Благодаря скрипту можно искать события по селектору, а не по одному элементу.
Метод описывается в статье Quickly finding and debugging jQuery event handler...

fe3c0f8955aa4c7e9a852e61f948c335.jpgf263677a0efd43489e512d9f6553b425.jpg
Делаем клик правой кнопкой мыши на строке handler и попадаем в место, где навешивалось событие.

d71b219bc51749c49c34e4e07ae1a17c.jpg
Ответ написан
Комментировать
DIITHiTech
@DIITHiTech
Fullstack javascript developer
Ну если по простому текстовому поиску ничего в firebug'e не выдает, то можно в версии JQ для разработчиков поставить точку останова в функции jQuery.event.add c условием, где elem фильтруется по какому либо его свойству...
Ответ написан
Комментировать
В Dragonfly в стайрой Опере (в настоящей ещё) показывало рядом с элементом значок события и там как-то можно было докапаться до места где навешивается. Было удобно. Вообще Dragonfly был очень удобен сам по себе.
Теперь в хромоотладчике только через поиск по предполагаемому селектору: joxi.ru/LmGpqbPfOE742l
Ответ написан
Murmurianez
@Murmurianez
JavaScript Developer
Недавно для себя открыл jQuery Audit (https://chrome.google.com/webstore/detail/jquery-a...)

После установки искать здесь:
86f98e193c4648fcb0511b38ef9e6a22.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы