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
-~----------~----~----~----~------~----~------~--~---

Reply via email to