2016-10-12 7 views
0

なしはcreateTextNodeのも、リスナー私はJS-作成したテキストノードvar node = document.createTextNode(null)を持っている:削除ノード+親

node.addEventListener('customEvent', function(){ 
    console.log('hi'); 
}, false); 
node.dispatch('customEvent'); 

私は終わりだ後は、私はきれいにしたいのですがノード+イベントリスナーを削除します。

hereを読むのは、私がいくつかを持っているのでコールバックの参照を保持しなくても済む最も簡単な方法は、ノード自体を削除することです。

これを行うには、方法はnode.parentNode.removeChild(node);です。

私の場合、node.parentNodenullです。

どうすればよいですか?

私は実際の親がdocumentだろうと思って、私はdocument.removeChild(node);を試してみましたが、私が手:Uncaught DOMException: Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.

+0

なぜあなたは、ドキュメントに追加することはありませんテキストノードを作成しているし、それにイベントを送信しますか? –

+0

JSは機能しますか? [mcve]を入力してください。 – zer00ne

答えて

0

ノードを作成したが、文書に添付したことがない場合、すべてのことは、それと物事を解除する必要がありますそれは(そのイベントハンドラ)がそれへのすべての参照を解放することを指しています。 nodeがそれを参照するだけのもの、そしてある場合、あなたのケースでは、:

node = null; // or undefined, or 42, doesn't matter 
関連する問題