元素事件列表

时间:2010-10-11 21:33:41

标签: javascript dom-events

有没有办法在javascript中查找元素的所有事件?或者从元素中取消绑定所有事件的方法?

感谢。

3 个答案:

答案 0 :(得分:3)

当然! 看看这个绑定/解除绑定事件 http://api.jquery.com/category/events/ 并使用这个jQuery代码片段以keypairs“eventname / function delegate”的散列集的形式获取绑定到元素的所有事件

jQuery(elem).data('events');

答案 1 :(得分:3)

没有办法直接使用javascript。

Jquery有几个函数可以跟踪这些数据。

一种“纯粹”的方法是通过原型设计更改addEventListener / attachEvent函数(搜索javascript原型,而不是框架)。

或者,如果你有自定义功能来添加/删除事件,你可以调整它。

嗯,就是这样。

答案 2 :(得分:2)

如果你不想使用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.
      }
   }
}