DOMNodeInserted在IE中

时间:2013-02-22 06:58:50

标签: jquery internet-explorer cross-browser dom-manipulation mutation-events

为什么这段代码在IE中不起作用?请帮忙解决它:

jQuery('body').live('DOMNodeInserted',function(e){
    var parent = jQuery(e.target).parent();
    parent.find("a").css('color','#AA62C6');
    parent.find('a').removeAttr('onmousedown');
});

2 个答案:

答案 0 :(得分:2)

IE中不支持此事件。这被添加到IE9中,但在实现中似乎有些错误。

解决方案是处理基础上的dom操作(更改dom的方法)级别。

function update(){
    //do some dom manipulation
    $(window).trigger('customupdatedom', parent);
}
$(window).on('customupdatedom', function(e, parent){
    //handle dom change
})

您还可以阅读以下内容 DOMNodeInserted equivalent in IE?
DOMNodeInserted event

答案 1 :(得分:0)

对IE使用onreadystatechange

var parent;

if (!!document.addEventListener)
  {
  jQuery('body').live('DOMNodeInserted',function(e){
    parent = jQuery(e.target).parent();
    parent.find("a").css('color','#AA62C6');
    parent.find('a').removeAttr('onmousedown');
    });
  }
else
  {
  jQuery("body").get(0).addBehavior("foo.htc");
  jQuery('body').get(0).attachEvent('onreadystatechange',function(e){
    parent = jQuery(e.target).parent();
    parent.find("a").css('color','#AA62C6');
    parent.find('a').removeAttr('onmousedown');
    });  
  }