1

我从舞台上删除 DOMElement 时遇到问题。这就是我使用 createjs 框架创建 domElement 的方式。

this.domElement = new createjs.DOMElement(document.getElementById('nickname'));
    this.domElement.x = 580;
    this.domElement.y = 200;
    this.stage.addChild(this.domElement);

我的 HTML 代码如下所示:

<form id="myForm" style="visibility: hidden">
<input id="nickname" value="" size="10">

一切正常,直到我想从舞台上删除“domElement”。这是我尝试的方法:

this.stage.removeChild(this.domElement);

我还尝试了其他解决方案,例如:

this.stage.parentNode.removeChild(this.domElement);

你知道为什么我不能删除这个 DOM 元素吗?

预先感谢您的帮助

4

2 回答 2

3

从舞台中移除 DOMElement 不会影响它包装的相关 html 元素。DOMElement 可用于控制 HTML 元素的位置、转换和可见性,但如果将其从舞台上移除,则 html 元素不会受到影响,因为该元素从一开始就从未真正出现在舞台上。

您将不得不从浏览器 DOM 中手动删除 html 元素。请注意,舞台不是 HTML 元素,因此它没有“parentNode”。相反,这样的事情可能会起作用:

domElement.htmlElement.parentNode.removeChild(domElement.htmlElement);

干杯。

于 2013-09-19T15:18:24.843 回答
1

@Lanny 从 DOM 中删除元素的解决方案确实有效。但是,如果你想再次使用这个 DOM 元素,那么它就会消失。因此,无论如何,我发现隐藏元素是一个更好的解决方案。

domElement.htmlElement.style.visibility = "hidden";

如果您不再有对 createjs DOMElement 的引用,那么您可以通过以下方式访问它:

document.getElementById("_id_").style.visibility = "hidden";
于 2015-06-27T23:15:22.090 回答