有没有办法在javascript中查找元素的所有事件?或者从元素中取消绑定所有事件的方法?
感谢。
答案 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.
}
}
}