用于节点创建的DOM回调
每当满足某个选择器的div插入DOM时,我想要执行某个回调。 我已经探讨了DOM事件文档,而我发现的最接近的事件是“加载”,但它并不像我希望的那样完成。
理想情况下,我想要的是:
$(".myclass").live("load", function(){... do stuff to $(this) ...}
给出我正在做的事情的一些背景:
我在网页上有一个事件,每次点击某个按钮时都会创建新的表单。 修改JS代码是非常不受欢迎的。 我想将表单中的一个字段转换为jstree,因此我能想到的唯一方法是为插入到DOM事件附加一个回调并在func中附加一个jstree。
更新:我发现DOMNodeInserted,但显然它在IE中不受支持。
大规模警告:不推荐使用DOM级别3中定义的DOMMutationEvents 。
document.addEventListener("DOMNodeInserted", function (ev) { var node = ev.target; if (careAbout(node)) { runCode(ev); } });
DOM事件级别2中记录了DOMNodeInserted
事件。
当然浏览器支持是平庸的。
在非兼容浏览器中模拟此操作的唯一方法是轮询整个DOM,以确定树是否已更改并手动触发事件。 这也像地狱一样昂贵 。
但你真正的问题是:
修改JS代码是非常不受欢迎的
你有糟糕,丑陋,不可维护的代码。 忽略它不会解决问题。 踩着它不会让它消失。 最好的办法是重构,重构,重构。