On Thu, Mar 15, 2012 at 2:51 PM, Stijn de Witt <stijn.dew...@planonsoftware.com> wrote: > Hi Martin, thanks for your quick response! > >>> AFAIK jQuery unbinds all registered event listeners for a DOM element when >>> this element is removed with jQuery method like #remove(), #replaceWith(), >>> etc. > > I think so too... However I am not sure that that is indeed the way that > Wicket removes components that are replaced by an Ajax request? I think > Wicket relies on their own code that they based on Prototype JS ?
No. Including version 1.5 Wicket uses its own JavaScript code to do this (see wicket-ajax.js #replaceOuterHtml()). In Wicket 6.0 jQuery is used behind the scenes and this method is implemented with: jQuery(oldElement).after(newElementHtml".remove(). If upgrading to Wicket 6.0-SNAPSHOT is not an option for you then you can use monkey patching approach to override the old impl in 1.5 > >>> Better ask in jQuery forums. > > I am not sure if that is the right place. Seems to me that Wicket is doing > the inserting / removing of the components for the page. The statement() > method lets me hook into the insertion phase to add my own listeners (be it > with jQuery or any other framework) so it seems to me there should also be a > corresponding method for the removing phase where you can unhook/unbind > events etc... > > -Stijn > > > -----Original Message----- > From: Martin Grigorov [mailto:mgrigo...@apache.org] > Sent: donderdag 15 maart 2012 13:32 > To: users@wicket.apache.org > Subject: Re: How to cleanup when plugin/behavior is removed through Ajax? > > Hi, > > AFAIK jQuery unbinds all registered event listeners for a DOM element when > this element is removed with jQuery method like #remove(), #replaceWith(), > etc. > But I'm not sure this is the case when you remove a parent element of an > element with event listeners. Better ask in jQuery forums. > > On Thu, Mar 15, 2012 at 11:22 AM, Stijn de Witt > <stijn.dew...@planonsoftware.com> wrote: >> Hi. We are using WiQuery in our application to attach some behaviors to some >> components. For example a resize behavior to react on the component being >> resized. I added some debug logging and I see that when we switch panels >> (through Ajax) all event listeners for the components on the new panel are >> added, but the old ones from the panel being replaced are never removed. So >> the list of event handlers just grows and grows... >> >> We register event listeners in the statement method of the WiQuery behavior, >> like this: >> >> public abstract class BaResizeEventBehavior extends >> WiQueryAbstractBehavior { >> // ... >> @Override public JsStatement statement() { >> return new JsQuery(getComponent()).$().chain("resize", new >> JsScope() { >> @Override public void execute(JsScopeContext aScopeContext) { >> // event listener implementation here >> } >> }); >> } >> } >> >> This will generate Javascript code that looks like this: >> >> $('#componentId').resize(function() { >> // event listener implementation here }); >> >> This code will register a jQuery event on the component with id >> 'componentId'. However when this component disappears from the page, I would >> like this event handler to be unbound again, but that does not happen. >> >> Any ideas? >> >> Thanks, >> >> -Stijn >> >> P.S: >> This is cross-posted to >> http://groups.google.com/group/wiquery-plugins/browse_thread/thread/aaceac38d60adbcf >> because that group seems to have hardly any traffic... Hopefully one of the >> Wicket gurus here knows a bit about WiQuery as well? Although maybe this >> question can be formulated for Wicket as well as also there when doing Ajax >> we need to clean up after components when they are removed from the page >> right? > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org