Javascript 在追加子项之后发生的事件

Javascript 在追加子项之后发生的事件,javascript,dom,Javascript,Dom,元素添加到网页后是否会发生事件 理想情况下,我想这样做: var div = createSomeDiv(); $(div).on("???", function() { console.log("Div was added") }); document.body.appendChild(div); //<---event would fire now 请注意,不推荐使用变异事件,在现代浏览器中,您可以使用变异观察者执行此操作: var onAppend = function(e

元素添加到网页后是否会发生事件

理想情况下,我想这样做:

var div = createSomeDiv();
$(div).on("???", function() {
    console.log("Div was added")
});
document.body.appendChild(div); //<---event would fire now

请注意,不推荐使用变异事件,在现代浏览器中,您可以使用变异观察者执行此操作:

var onAppend = function(elem, f) {
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(m) {
            if (m.addedNodes.length) {
                f(m.addedNodes)
            }
        })
    })
    observer.observe(elem, {childList: true})
}

onAppend(document.body, function(added) {
    console.log(added) // [p]
})

var p = document.createElement('p')
p.textContent = 'Hello World'

document.body.appendChild(p) // will trigger onAppend callback

请注意,不推荐使用变异事件,在现代浏览器中,您可以使用变异观察者执行此操作:

var onAppend = function(elem, f) {
    var observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(m) {
            if (m.addedNodes.length) {
                f(m.addedNodes)
            }
        })
    })
    observer.observe(elem, {childList: true})
}

onAppend(document.body, function(added) {
    console.log(added) // [p]
})

var p = document.createElement('p')
p.textContent = 'Hello World'

document.body.appendChild(p) // will trigger onAppend callback