0

div が作成されるたびに発生するイベントをどのように発生させますか?

私はこれに沿って何かを考えていましたが、明らかにそうではありません。

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

MutationObserver ( https://stackoverflow.com/a/11546242/165737 )を発見しましたが、コメントに見られるように、これは IE では機能しません。

4

2 に答える 2

0

突然変異イベント (DOMNodeInserted) を使用できますが、IE はそれを完全に処理できない場合があります。

http://jsfiddle.net/kasperfish/AAd8f/

$(function() {
    $('#btn').click(function(){
        $('body').append('<div style="width:30px;height:30px;border:1px solid black"></div>');
    });


    $(document).on('DOMNodeInserted', function(e) {

        $(e.target).addClass('blue');
    });
});

DOM をリッスンする代わりに、コールバック イベントを使用する方がよいことに注意してください。DOM に div が挿入された後、コールバックを記述する必要があります。これを達成するための他の(ハックではない)方法はないと思います。

于 2013-10-04T09:59:49.613 に答える
0

MutationObserverの代わりにこのようなものを試して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);
});

とここに複数の効果を持つ別の例があります。Background color

于 2013-10-04T10:27:03.530 に答える