Javascript 用于创建DOM对象的事件

Javascript 用于创建DOM对象的事件,javascript,jquery,Javascript,Jquery,如何激发每次创建div时都会激发的事件 我在想一些类似的事情,但显然不是 $("#content").on("create", "div.block", function () { $(this).css({"background-color":"#FF0000"}); }); 我发现了MutationObserver(),但是从评论中可以看出,这在IE中不起作用。您可以使用一个突变事件(DOMNodeInserted)。。。然而,IE可能无法完全处理这个问题 $(函数(){ $('

如何激发每次创建div时都会激发的事件

我在想一些类似的事情,但显然不是

$("#content").on("create", "div.block", function () {
    $(this).css({"background-color":"#FF0000"});
});

我发现了MutationObserver(),但是从评论中可以看出,这在IE中不起作用。

您可以使用一个突变事件(DOMNodeInserted)。。。然而,IE可能无法完全处理这个问题

$(函数(){
$('#btn')。单击(函数(){
$('body')。追加('');
});
$(文档).on('DOMNodeInserted',函数(e){
$(e.target).addClass('blue');
});
});

我想指出的是,最好使用回调事件,而不是侦听DOM。在DOM中插入div后,需要编写回调。我认为没有其他(非黑客)方法可以做到这一点。

您可以尝试类似的方法,而不是在
div.block
被添加到
div#content

$(function(){
    var c = $('#content'), l = c.find('.block').length;
    setInterval(function(){
        var lOld = l;
        if(c.find('.block').length > lOld) {
            l = c.find('.block').length;
            c.find('.block').css({"background-color":"#FF0000"});
        }
    }, 100);
});

这里有多重背景色效果。

我想这可能是重复的。试着阅读这个答案:我想你会发现除了IE之外,还有其他浏览器DOM4也不能工作。试着看看这个:你需要这个事件做什么?看起来像一个。@M.S,检查我的答案(还有小提琴和注释链接),你可能想要这样的东西,但不确定。另一个在插入后获取新元素,以便
OP
可以检查最后一个元素的
text/html
或他想要的任何东西。这很有效,但是一直运行计时器似乎是一个很大的开销。是这样吗?@M.S,虽然很贵,但不会是一个问题(性能),我认为,至少它可以轻松地在所有浏览器上工作。这与我所希望的非常相似,不幸的是,即使是提琴也不像你在回答中所建议的那样在IE10中工作。(我测试过的其他浏览器看起来不错)
$(function(){
    var c = $('#content'), l = c.find('.block').length;
    setInterval(function(){
        var lOld = l;
        if(c.find('.block').length > lOld) {
            l = c.find('.block').length;
            c.find('.block').css({"background-color":"#FF0000"});
        }
    }, 100);
});