Skip to content

Instantly share code, notes, and snippets.

@RStankov
Created September 8, 2009 13:56
Show Gist options
  • Save RStankov/182925 to your computer and use it in GitHub Desktop.
Save RStankov/182925 to your computer and use it in GitHub Desktop.
Event.allHandlers = function(eventName){
return $H(Element.Storage).inject([], function(m, p){
var registry;
if (!p.value.get || !(registry = p.value.get('prototype_event_registry'))){
return m;
}
if (!eventName){
return m.concat(registry.values().flatten().pluck('handler'));
}
if (registry.get(eventName)){
return m.concat(registry.get(eventName).pluck('handler'));
}
return m;
});
};
Element.addMethods({
allHandlers: function(element, eventName){
var registry = Element.retrive(element, 'prototype_event_registry');
if (!registry){
return null;
}
if (!eventName){
return registry.inject({}, function(m, p){
m[p.key] = p.value.pluck('handler');
return m;
});
}
return registry.get(eventName).pluck('handler');
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment