2011-11-26 12 views
5

DOMNodeInserted sự kiện được gọi khi nút "được nối vào" hoặc "được nối thêm"?khi nào là sự kiện "DOMNodeInserted" được gọi?

Tôi yêu cầu này vì đoạn mã sau:

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

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

và rằng:

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

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

Cả gọi OnNodeInserted trong Chrome. Nó là một lỗi?

Trả lời

9

Đây là từ 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 

Điều quan trọng là Bubbles: Có - thats tại sao mình bị sa thải trên thùng sơn là tốt.

-1

Nếu bạn muốn ngăn sự kiện phát tán chỉ cần sử dụng event.stopPropagation(); trong nút gọi lại văn bản của bạn. Sự kiện sau đó không còn được xử lý lên cây dom.

+0

'event.stopPropagation()' dường như không có bất kỳ ảnh hưởng nào đối với tôi. Sự kiện này vẫn đang bắn cho trẻ em của mục tiêu. Tôi đã làm việc xung quanh nó bằng cách kiểm tra 'event.target' là đối tượng mà tôi nghĩ. – devios1