Pārlūkot izejas kodu

CSS2DRenderer: Ensure child DOM elements are correctly removed.

Mugen87 5 gadi atpakaļ
vecāks
revīzija
50e467d889

+ 7 - 3
examples/js/renderers/CSS2DRenderer.js

@@ -11,11 +11,15 @@ THREE.CSS2DObject = function ( element ) {
 
 	this.addEventListener( 'removed', function () {
 
-		if ( this.element.parentNode !== null ) {
+		this.traverse( function ( object ) {
 
-			this.element.parentNode.removeChild( this.element );
+			if ( object.element instanceof Element && object.element.parentNode !== null ) {
 
-		}
+				object.element.parentNode.removeChild( object.element );
+
+			}
+
+		} );
 
 	} );
 

+ 1 - 1
examples/js/renderers/CSS3DRenderer.js

@@ -13,7 +13,7 @@ THREE.CSS3DObject = function ( element ) {
 
 	this.addEventListener( 'removed', function () {
 
-		this.traverse( function( object ) {
+		this.traverse( function ( object ) {
 
 			if ( object.element instanceof Element && object.element.parentNode !== null ) {
 

+ 7 - 3
examples/jsm/renderers/CSS2DRenderer.js

@@ -17,11 +17,15 @@ var CSS2DObject = function ( element ) {
 
 	this.addEventListener( 'removed', function () {
 
-		if ( this.element.parentNode !== null ) {
+		this.traverse( function ( object ) {
 
-			this.element.parentNode.removeChild( this.element );
+			if ( object.element instanceof Element && object.element.parentNode !== null ) {
 
-		}
+				object.element.parentNode.removeChild( object.element );
+
+			}
+
+		} );
 
 	} );
 

+ 1 - 1
examples/jsm/renderers/CSS3DRenderer.js

@@ -19,7 +19,7 @@ var CSS3DObject = function ( element ) {
 
 	this.addEventListener( 'removed', function () {
 
-		this.traverse( function( object ) {
+		this.traverse( function ( object ) {
 
 			if ( object.element instanceof Element && object.element.parentNode !== null ) {