I've figured out a test. http://dev.jquery.com/attachment/ticket/3820/3820.unit.patch
Hope it's fine too. On Sat, Jan 10, 2009 at 12:46 AM, John Resig <[email protected]> wrote: > > Taking a quick look it seems like your patch is very nearly there. > I'll take a look at it tomorrow and try to pull together a test case > for it, as well. > > --John > > > > On Fri, Jan 9, 2009 at 10:28 PM, Iraê <[email protected]> wrote: > > John, > > You were absolutely right. This seams to be the problem. And I think I > > solved it: > > http://dev.jquery.com/ticket/3820 > > patch: http://dev.jquery.com/attachment/ticket/3820/3820.patch > > I don't know if this is clumsy or if this could add overhead or not. May > be > > there is a good way to enhance it, but i think it's fine. > > Here is an working test case with jquery 1.3b2 (6078) patched by me: > > http://irae.pro.br/jquerytests/live.html.patched.html > > I'm celebrating my first patch proposal to jQuery, hope it is accepted. > =) > > On Fri, Jan 9, 2009 at 5:58 PM, John Resig <[email protected]> wrote: > >> > >> Here is what I think is happening: > >> > >> First click: Since there's only a text node inside of the link both > >> callbacks work as expected - the target of the event is the anchor > >> element. The one handler ends up modifying the contents with .html(). > >> > >> Second click: The first handler is run - but the target is the span, > >> this time. You end up deleting the span while the event is still > >> happening - stranding all the other events (they were targeted on an > >> element that no longer exists). > >> > >> For example, if you used .text("Click me") instead of the html > >> business then this would've worked. > >> > >> I don't really see a clear way to make this "just work". The target of > >> the event was nuked while the event was still happening - we're kind > >> of up the creek without a paddle on this one. > >> > >> I'm open to thoughts, but I don't see a clear way to resolve this - at > >> least not before the final 1.3 release. > >> > >> Could you open a bug on this, at least? It'll be good to remember this > >> issue. > >> > >> --John > >> > >> > >> > >> On Fri, Jan 9, 2009 at 9:34 AM, John Resig <[email protected]> wrote: > >> > Thanks for the report, I'll look in to this. > >> > > >> > --John > >> > > >> > > >> > > >> > On Thu, Jan 8, 2009 at 10:45 PM, Iraê <[email protected]> wrote: > >> >> I'm using 1.3b2 (6070) and found the following behavior. > >> >> > >> >> - using 2 .live() handlers for same link. > >> >> - 1st handler always fire and modify the link with .html(string) > >> >> - 2nd handler fire once, them stops firing. > >> >> > >> >> I've made a test case: > >> >> http://irae.pro.br/jquerytests/live.html.html > >> >> > >> >> The weird thing is that after the manipulation, if you stop modifying > >> >> the > >> >> DOM (use toggle link in test case), both handlers fire again. > >> >> > >> >> I dug into jQuery source but was unable to solve the problem myself > to > >> >> present a patch. But I found out that if I use .wrapInner() instead > of > >> >> .html() everything works fine. To me it seems that .closest() used in > >> >> liveHandler can't match the element for delegation during domManip > for > >> >> some > >> >> reason, but this was as far as I could get. > >> >> > >> >> > >> >> > >> >> >> > >> >> > >> > > >> > >> > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" 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/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---
