If setting the expando to a function, rather than a boolean, prevents it from persisting when it should not, then that's fantastic. It'd also solve the similar problem where cloned nodes say they're extended but are not. Write a patch!
Andrew On Feb 8, 12:05 pm, "Mislav Marohnić" <[EMAIL PROTECTED]> wrote: > Two days ago I closed tickets #7497 and #7376. Both sample scripts exhibited > the same behavior in IE: after some interaction they fail because > Element.Method methods are invoked on an *extended* node, but still are not > found. > > This took me a while to figure out (thanks Joe for Firebug Lite) - suppose > you have a document: > > <div id="test"> > <div id="elly">I'm magical!</div> > </div> > > If you use $('elly') somewhere in your JavaScript then "elly" would get > extended, right? Prototype sets the obscure property "_extended" to true. > > Now, suppose you do some string arithmetics after that to add some HTML: > > $('test').innerHTML += "<span>I'm a span!</span>" > > Notice the operator. This call "rewrites" content in "test" (including > "elly") and adds a SPAN to the end. > > But "elly" is still the same element, right? It remained unchanged? WRONG. > > $('elly')._extended // -> true > $('elly').show // -> yeah, you wish. ALL added methods are lost > > So, method properties are gone, but "_extended" property remained. > Element.extend() never re-applies Element.Method on the node because it > thinks it is already extended. > > Workaround? Easy. When we extend a specific element, we shouldn't set > "_extended" to a boolean "true", but to some function: > > element._extended = Prototype.emptyFunction > > Now when all methods are wiped from the element, "_extended" property will > be wiped, too, giving Element.extend() a chance to re-apply DOM extensions. > > --http://dev.rubyonrails.org/ticket/7497 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype: Core" group. To post to this group, send email to prototype-core@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/prototype-core?hl=en -~----------~----~----~----~------~----~------~--~---