Yes - this is the exact way to do it so that you don't have to duplicate the script on each request. Thanks for the great post!
-- Jeremy Thomerson http://www.wickettraining.com On Fri, Apr 9, 2010 at 6:07 PM, Ben Tilford <[email protected]> wrote: > Try > function setup() { > $("a.showHidePrograms").click( > function () { > var $div= $(this).parent().next("div"); > if($div.attr("class") == 'hide'){ > $div.attr("class","show"); > }else{ > $div.attr("class","hide"); > } > } > ); > } > $(document).ready(function(){ > setup(); > }); > > Then in your ajax method > target.appendJavascript("setup();"); > > > On Fri, Apr 9, 2010 at 5:30 PM, Russell Morrisey < > [email protected]> wrote: > > > It might be a good idea to use an IBehavior to contribute the script. You > > can add the behavior to the link component in wicket; when the behavior > is > > rendered, it can contribute the javascript code to set it up with jquery. > > That way, you ensure that every new rendering of the link (which creates > a > > new DOM element) includes your javascript (which binds your handler to > the > > DOM element that is there right now), whether it's the first time on the > > page or from an ajax request. When you bind your event on page load, the > > ajax request creates a new DOM element for the link by repainting it, so > the > > link that had your bound event handler goes away. > > > > > > RUSSELL E. MORRISEY > > Programmer Analyst Professional > > Mission Solutions Engineering, LLC > > > > | [email protected] | www.missionse.com > > 304 West Route 38, Moorestown, NJ 08057 > > > > -----Original Message----- > > From: tubin gen [mailto:[email protected]] > > Sent: Friday, April 09, 2010 2:12 PM > > To: users > > Subject: jqery not getting called after ajax refresh > > > > I added this jquery code to my page. > > > > $(document).ready(function(){ > > $("a.showHidePrograms").click( > > function () { > > var $div= $(this).parent().next("div"); > > if($div.attr("class") == 'hide'){ > > $div.attr("class","show"); > > }else{ > > $div.attr("class","hide"); > > } > > } > > ); > > }); > > > > inside my html I have a table this contains anchor tag with > > class showHidePrograms. > > onclick of this anchor tag the function gets called everything is fine. > > > > This page also has some ajaxLinks on click of this link I repaint the > > table, after this when I click on anchor tag the jquery script is not > > called , > > does repainting somehow hides this anchor from jquery ? > > > > This is a PRIVATE message. If you are not the intended recipient, please > > delete without copying and kindly advise us by e-mail of the mistake in > > delivery. > > NOTE: Regardless of content, this e-mail shall not operate to bind MSE to > > any order or other contract unless pursuant to explicit written agreement > or > > government initiative expressly permitting the use of e-mail for such > > purpose. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > >
