I'm using 1.6.1rc3 to have access to Element.storage. I need to write a function that deep clones an element and copies the Element.observe events as well as the Element.Storage items with it. I've managed to write the code that can copy one or the other.
The problem comes in when I try to do both (copy the storage items and the events.) I suppose due to Event.observe using the Element.storage item, I can't seem to have the items that I've stored with Element.store to copy while maintaining the Event.observe events that I've copied. I can copy the observe events or the element.store events, but not both. Below is some terrible code for review. Thanks for any help or insults. deepClone: function(element) { //deep clone node var newElement = element.clone(true); //clone the node //stop observing because of IE BS newElement.stopObserving(); //copy the item var registry = Element.retrieve(element, 'prototype_event_registry'); if (!Object.isUndefined(registry)) { registry.each( function(pair) { var eventName = pair.key, responders = pair.value; responders.each( function(r) { Element.observe(newElement, eventName, r.handler); }); }); } //for all of the descendants, copy the event handlers var srcdecend = element.descendants(); var dstdecend = newElement.descendants(); var numdecend = srcdecend.length; for(var i = 0; i < numdecend; ++i) { //stop observing because of IE BS dstdecend[i].stopObserving(); //copy the registry var registry = Element.retrieve(srcdecend[i], 'prototype_event_registry'); if (!Object.isUndefined(registry)) { registry.each( function(pair) { var eventName = pair.key, responders = pair.value; responders.each( function(r) { Element.observe(dstdecend[i], eventName, r.handler); }); }); } } return newElement; } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---