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

DOM から要素を削除する @Lanny のソリューションは機能します。ただし、この DOM 要素を再度使用する場合は、なくなります。したがって、とにかく私の場合は、要素を非表示にすることがより良い解決策であることがわかりました。

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

createjs DOMElement への参照がなくなった場合は、次の方法でアクセスできます。

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