Hi Kevin, read this small post by kangax, that cereate a bookmartlet to count numbers of event an application is using, but by modifing this, you should be able to see what events are used in an element.
go to http://thinkweb2.com/projects/prototype/event-delegation-will-save-the-world/ -- david On 26 août, 10:04, "T.J. Crowder" <[email protected]> wrote: > Hi, > > Prototype doesn't have an official API call that gives you the event > handlers for an element. If you look at the source, it's fairly easy > to get them (in particular the stopObserving source is helpful), but > in a way that's undocumented and subject to change. (It changed quite > a bit between 1.6.0 and 1.6.1, for instance.) > > It may well not be appropriate to move an event handler from one > element to another. Consider this: > > function foo(container) { > container.down('.flargle').observe('change', function(event) { > if (this.value.length == 0) { > container.addClassName('error'); > } else { > container.removeClassName('error'); > } > }); > } > > If you clone the container, including its flargle element, the handler > will not function as expected -- it'll update the original container, > not the new one. Now, I'm not saying that's a smart way to implement > that function, but I suspect there's a more realistic version of this > scenario (a corrolation between the observed element and some data > bound to the handler function in some way, in this case via a closure) > that I just didn't come up with on first thought. > > Now, if you're in control of the code and know things like that aren't > being done, you could safely transfer the event handlers to cloned > elements. But I wonder if refactoring (perhaps refactoring involving > event delegation) could obviate the need for doing this... > > FWIW, > -- > T.J. Crowder > tj / crowder software / com > Independent Software Engineer, consulting services available > > On Aug 25, 10:45 pm, Kevin Porter <[email protected]> wrote: > > > Hi, > > > Can I get a list of registered listeners/observers on an element? > > > What I'm trying to do is dynamically replace an element with another > > element, but want to preserve the events. > > > I don't want to resort to something like: > > > new_element.onclick = old_element.onclick; > > > as the prototype docs advise against using .onclick, .onmouseover etc. > > > If prototype doesn't provide a way to do this, is there a bare JS way to > > do it (ie to get a list of events that were registered with > > addEventListener)? I googled but couldn't find this. > > > regards, > > > - Kev > > > -- > > Kevin Porter > > Advanced Web Construction > > Ltdhttp://webutils.co.ukhttp://billiardsearch.nethttp://9ballpool.co.uk > > > AJAX Blackjack - real-time multi-player blackjack game with no flash, java > > or software downloads required -http://blackjack.webutils.co.uk --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---
