appendChild in IE6 / IE7 nicht mit vorhandenen Elementen arbeiten
-
22-07-2019 - |
Frage
Ich habe ein div, die von einem Ort zum anderen in der DOM bewegt werden muss. Also im Moment mache ich es wie folgt:
flex.utils.get('oPopup_About').appendChild(flex.utils.get('oUpdater_About'));
Aber, IE, sein, gut, IE, funktioniert es nicht. Es funktioniert alle anderen Browser, nur nicht im Internet Explorer.
Ich brauche es auf diese Art und Weise wie das Element zu tun (div) ‚oUpdater_About‘ muss wiederverwendet werden, da es bevölkert über und über.
Also ich nur in der Lage sein müssen, um die div um das DOM zu bewegen, wird appendChild dies in allen Browsern passieren zu lassen, aber, IE.
Vielen Dank im Voraus!
Lösung
Sie haben die Knoten zuerst zu entfernen, bevor Sie es anderswo anhängen können. Ein Knoten kann nicht zur gleichen Zeit an zwei Orten gleichzeitig sein.
var node = flex.utils.get('oUpdater_About')
node.parentNode.removeChild(node);
flex.utils.get('oPopup_About').appendChild(node);
Andere Tipps
stellen Sie sicher, die oUpdater_About (mit node.cloneNode (true)) zu klonen Auf diese Weise können Sie eine Kopie erhalten und wie oft die dom-Schnipsel wieder verwenden können, wie Sie (in jedem Browser)
wollenDieser Beitrag deutet darauf hin, dass es in der Tat ein Problem mit appendChild in Bezug auf diese:
http://metadeveloper.blogspot.com/2007 /01/ie-7-appendchild-bug.html
Haben Sie versucht, das Klonen es, es zu entfernen, dann den Klon Einfügen statt?
James