Browse Source

fixed data event happening while tree has been removed

Nicolas Cannasse 4 years ago
parent
commit
789384f0a5
1 changed files with 12 additions and 0 deletions
  1. 12 0
      hide/comp/IconTree.hx

+ 12 - 0
hide/comp/IconTree.hx

@@ -128,6 +128,8 @@ class IconTree<T:{}> extends Component {
 					return false;
 				},
 				data : function(obj, callb) {
+					if( checkRemoved() )
+						return;
 					callb.call(this, makeContent(obj.parent == null ? null : map.get(obj.id)));
 				}
 			},
@@ -214,6 +216,16 @@ class IconTree<T:{}> extends Component {
 		});
 	}
 
+	function checkRemoved() {
+		if( element[0].parentNode == null )
+			return true;
+		if( !js.Browser.document.contains(element[0]) ) {
+			dispose();
+			return true;
+		}
+		return false;
+	}
+
 	public function dispose() {
 		(element:Dynamic).jstree("detroy");
 		element.remove();