Список событий элемента - PullRequest
5 голосов
/ 12 октября 2010

Есть ли способ найти все события для элемента в javascript? или способ отсоединить все события от элемента?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 12 октября 2010

Нет способа сделать это напрямую, используя JavaScript.

Jquery имеет несколько функций для отслеживания этих данных.

Один «чистый» способ сделать это - изменить функцию addEventListener / attachEvent с помощью прототипирования (поиск по прототипу javascript, а не по фреймворку).

Или, если у вас есть пользовательская функция для добавления / удаления событий, вы можете настроить ее.

Ну вот и все.

3 голосов
/ 12 октября 2010

Конечно! Взгляните на это, чтобы связать / убрать события http://api.jquery.com/category/events/ и использовать этот фрагмент кода jQuery, чтобы получить все события, связанные с элементом в виде хэш-набора пар ключей "делегат события / функции"

jQuery(elem).data('events');
2 голосов
/ 12 октября 2010

Если вы не хотите использовать jQuery, быстрый и грязный способ (и он наверняка будет лучше) будет циклически просматривать параметры элемента и проверять функции, начинающиеся с «on» (onclick и т. Д.).

var el = document.getElementById('elementid') ;
el.onclick = function(e) { console.log('Clicked!') ; } ; // Attached test event.
if(typeof(el)=='object') {
   for(var i in el) {
      if(i.substr(0,2) == 'on' && typeof(el[i])=='function') {
         el[i] = function() {} ; // Unbind with null function.
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...