2011-11-26 22 views
5

DOMNodeInserted evento se invoca cuando el nodo "se anexa a" o "se anexa"?cuando se llama al evento "DOMNodeInserted"?

Lo pregunto porque el siguiente código:

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

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

y que:

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

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

Tanto invocan OnNodeInserted en Chrome. ¿Es un error?

Respuesta

9

Esto es de 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 

La clave está en los burbujas: Sí - es por eso que su ser despedido en el envase también.

-1

Si desea evitar que el evento burbujee solo use event.stopPropagation(); en su devolución de llamada del nodo de texto. Los eventos ya no se manejan en el árbol dom.

+0

'event.stopPropagation()' no parece tener ningún efecto para mí. El evento sigue disparando para los niños del objetivo. He solucionado el problema comprobando que 'event.target' es el objeto que creo que es. – devios1

Cuestiones relacionadas