Hi Michael , sorry it's my fault i made a stupid mistake somewhere else ( i dare not tell you what it was, I think i'd better get some sleep :) ). The code as such worked, so i would assume the wrap() does not unbind the events.
Thanks again! alexandre On Sat, Jan 3, 2009 at 11:50 PM, Michael Geary <m...@mg.to> wrote: > > Without testing it, off the top of my head I think it may be the .wrap() > that is doing you in. That has to remove the element from the DOM and > re-insert it, and I think that loses the event binding. > > Also, I take it that $dsanchors refers to a UL, is that right? Then you're > temporarily inserting the A element directly into the UL, which is invalid. > Maybe browsers allow it anyway, but there's no guarantee what they will do. > > I would try this instead: > > $('<a>' + linkText + '</a>') > .attr({ > 'href': '#' + index, > 'id': index, > 'class': linkText == selected ? 'selected' : 'notSelected' > }) > .wrap('<li></li>') > .appendTo($dsanchors); > > $('#'+index).bind('click', function() { > alert("hi"); > return false; > }); > > -Mike > >> -----Original Message----- >> From: jquery-en@googlegroups.com >> [mailto:jquery...@googlegroups.com] On Behalf Of Alexandre Plennevaux >> Sent: Saturday, January 03, 2009 2:20 PM >> To: Jquery-en >> Subject: [jQuery] event binding issue >> >> >> hello friends, >> >> i'm injecting a menu ( UL > LI > A markup) and binding each A >> anchor a click event, but the event fails to trigger. Can you >> explain me what i'm dooing wrong? >> >> here is the code sample: >> >> $('<a>' + linkText + '</a>').appendTo($dsanchors).attr({ >> 'href': '#' + index, >> 'id': index, >> 'class': (linkText == selected) ? 'selected' >> : 'notSelected' >> }).bind('click', function() >> { >> >> alert("hi"); >> >> return false; >> }).wrap('<li></li>'); >> >> >> the html is correctly injected, but the event is not attached. >> > >