List of an element's events

2020-06-17 06:55发布

Is there a way to find all of the events for a element in javascript? or a way to unbind all events from a element?

Thanks.

3条回答
The star\"
2楼-- · 2020-06-17 07:38

If you don't want ot use jQuery, a quick and dirty way (and there's bound to be a better one) would be to loop through the element's parameters and check for functions that begin with 'on' (onclick etc).

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.
      }
   }
}
查看更多
仙女界的扛把子
3楼-- · 2020-06-17 07:52

There is not way to do that directly using javascript.

Jquery has a couple of functions to keep track of that data.

One "pure" way to do that is to change the addEventListener/attachEvent function through prototyping (search about javascript prototype stuff, not the framework).

Or if you have a custom function to hadle adding/removing events you can tune it.

Well, that's it.

查看更多
▲ chillily
4楼-- · 2020-06-17 07:57

Of course ! Take a look at this to bind/unbind events http://api.jquery.com/category/events/ and use this jQuery code fragment to get all the events bound to an element in the form of a hashset of keypairs "eventname/function delegate"

jQuery(elem).data('events');
查看更多
登录 后发表回答