javascript - Jquery DOMNodeInserted 在 Chrome 中不起作用,但在 IE 中有效

标签 javascript jquery html dom cross-browser

我有一个要开发的模块,其中有一个父表,每一行都有一个子表,这两个子表都是通过使用 jQuery 的 Ajax 调用使用 JSON 数组动态生成的。

现在,每次将类为“childtable”的子表插入显示子表 ID 的父表行时,我都需要触发警报。

我尝试使用 jQuery DOMNodeInserted 事件实现此目的,它在 IE 中对我来说非常适用,但在 Chrome 中不起作用。

我使用的是 Google Chrome 版本 56.0.2924.87。这段代码如下所示。

$('body').on('DOMNodeInserted', 'table.childtable', function(e) {
if ( ! $.fn.DataTable.isDataTable('#'+$(this).attr('id'))) {

var tab='#'+$(this).attr('id');

 alert(tab);  //fire id as alert

 $('#'+$(this).attr('id')).DataTable({
        "bSort" : false,
        "scrollCollapse": true,
        "searching": false,
        "bInfo" : false,
        "paging": false,
        "columnDefs": [{
               "targets": [ 0 ],
               "visible": false
            }]

 });
  $( tab).find( "thead tr th" ).each( function( index1 ) {
    index1 += 1;
  $(tab).find("tbody tr td:nth-child(" + index1 + ")").attr("data-title", $(this).text());
});


}


});

最佳答案

经过长时间的搜索,我终于找到了问题的答案。感谢 Uzair Farooq。
上面的事情可以使用在 Mutation observers 上工作的 arrive.js 来实现。
点击此处下载文件。 arrive.js


代码:

$('body').arrive('table.childtable', function(){
   alert('#'+$(this).attr('id'));
});


现在我担心的是我不能在旧浏览器中使用此代码。旧浏览器不支持 Bcoz 突变观察器。

那么我们如何使用 jquery 找出浏览器是否支持已弃用的突变事件?

关于javascript - Jquery DOMNodeInserted 在 Chrome 中不起作用,但在 IE 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067371/

相关文章:

javascript - 无法从缓存中加载图像

javascript - javascript下如何使用onchange事件

asp.net - jQuery UI 对话框 + ASP.NET 文本框 + 焦点

html - 左右浮动两个元素并垂直居中 UL?

html - 如何将子元素覆盖在父元素上

javascript - jQuery 设置 outerWidth(true) - 宽度的更好方法

javascript - 如何从 Tr 重复的输入文本中获取值?

javascript - 最小化和最大化 <div>

javascript - 多维数组的语法 - x[?,?] 和 x[?][?]

jquery - 需要刷新才能正确查看页面布局