Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отследить вызов обработчика 
:(
    Опции темы
V0fka
Дата 3.6.2013, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Привет!

Есть элемент
Код

<div class='class_name' id='id_element'>О себе</div>

Где-то программно ему назначается обработчик события onclick. В html коде элемент выглядит как показано выше, т.е. не видно какая функция вызывается. Подскажите, пожалуйста, как отследить какая функция срабатывает и в каком месте она вешается на onclick. smile 
PM MAIL   Вверх
CruorVult
Дата 4.6.2013, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 3
Всего: 28



В спецификации W3C написано что можно добавить listener в "список events list", но что собой представляет этот список и как к нему достучаться - скрыто. 

Тем не менее в хроме в инспекторе есть метод getEventListeners(element), где можно посмотреть, какой обработчик повешен на элемент.
PM MAIL Skype   Вверх
V0fka
Дата 4.6.2013, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



CruorVult, спасибо!
PM MAIL   Вверх
V0fka
Дата 5.6.2013, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Возникла сложность. Хочу сделать как сделно тут: http://www.nl.ua/ru/stroimaterialy. Там в строке над товарами есть флажок Акции. Как узнать какая js функция вызывается при событии change этого флажка?
PM MAIL   Вверх
Arantir
Дата 5.6.2013, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 5
Всего: 55



В Chrome это Ctrl+J и вкладка Elements -> Event Listeners.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
V0fka
Дата 5.6.2013, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Arantir, спасибо! Но событие флажка всеравно поймать не могу. 
PM MAIL   Вверх
Arantir
Дата 5.6.2013, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 5
Всего: 55



Судя по всему, там ивент не напрямую на елемент повешен. Используемый там фреймворк ловит ивенты самого окна (любой клик и т.п. по умолчанию так же вызывается для всех родителей вплоть до document), а уже потом вызывает ивент для соответствующего елемента.
Получается, что строчки кода, предназначенные для клика по флажку, вовсе не в ивенте и вызываются косвенно впоследствии вызова внутренних функций js-фреймворка.
Мда, это один из тех подходов, которые улучшают удобство разработки, но ухудшают удобство тестирования (как ООП, например)...


Придется копать исходники и искать концы, где на этот элемент что-то повешено. По его id, например.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
V0fka
Дата 5.6.2013, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 5.11.2006
Где: Украина

Репутация: нет
Всего: нет



Arantir, как печально :( .


CruorVultArantir, ещё раз спасибо за ответы!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0921 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.