开发者

List of an element's events

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.


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');


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.


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.
      }
   }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜