2011-11-26 7 views
5

DOMNodeInsertedノードが「追加」または「追加」されると、イベントが呼び出されますか?「DOMNodeInserted」イベントはいつ呼び出されますか?

私は、次のコードので、これを頼む:

function AddTextToContainer() { 
    var textNode = document.createTextNode ("My text"); 
    var container = document.getElementById ("container"); 

    if (container.addEventListener) { 
     container.addEventListener ('DOMNodeInserted', OnNodeInserted, false); 
    } 
    container.appendChild (textNode); 
} 

とその:

function AddTextToContainer() { 
    var textNode = document.createTextNode ("My text"); 
    var container = document.getElementById ("container"); 

    if (textNode.addEventListener) { 
     textNode.addEventListener ('DOMNodeInserted', OnNodeInserted, false); 
    } 
    container.appendChild (textNode); 
} 

どちらはChromeでOnNodeInsertedを呼び出します。バグですか?

答えて

9

これはW3C

DOMNodeInserted 
Fired when a node has been added as a child of another node. 
This event is dispatched after the insertion has taken place. 
The target of this event is the node being inserted. 
Bubbles: Yes 
Cancelable: No 
Context Info: relatedNode holds the parent node 

から鍵が泡を次のとおりです。はい - そのも同様に、コンテナの上に発射される理由のthats。

-1

イベントがバブリングするのを防ぐには、event.stopPropagation()を使用してください。あなたのテキストノードコールバックで。イベントはもはやdomツリーの上で処理されません。

+0

'event.stopPropagation()'は私には何の効果もないようです。イベントはまだターゲットの子供のために発砲しています。私は 'event.target'が私がそれと思うオブジェクトであることを確認することでそれを回避しました。 – devios1

関連する問題