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

Reply via email to