【发布时间】:2014-07-16 02:26:42
【问题描述】:
我有一些 .super-elem 类的元素,我想以某种方式进行调整,比如说通过添加 attribute 到它 adjusted="true"
我可以很容易地在文档的ready 事件中做出这样的事情:
$(".super-elem").attr("adjusted", "true");
但我可以稍后添加.super-elem 元素,并且我希望它们也可以调整。
所以当我用 AJAX 添加.super-elem 时,我可以使用一些 AJAX 回调来进行调整。
但是 - 有 1000 种不同的方式可以向页面添加新元素,就像
$("<div>").addClass("super-elem").appendTo("body");
有什么方法可以确保任何时间添加或创建的具有.super-elem 类的元素也需要调整?
我的想法是
- 超时检查是否有未调整的元素
setTimeout(function(){ adjust() }, 100);
- 某种 DOM 修改事件
但我不确定这些是否是好的解决方案 - 我认为它们对性能完全不利,而且我不觉得第一个真的很可靠。
【问题讨论】:
-
使用第二个选项绑定
DOMSubtreeModified事件,比如:$("#someDiv").bind("DOMSubtreeModified", function() { //Your code }); -
@ThinkDifferent 不,不要。突变事件已被弃用,不应使用。
-
@ThinkDifferent 突变不推荐使用,例如这里developer.mozilla.org/en-US/docs/Web/Guide/Events/…
-
我也发现了这个关于突变事件developer.mozilla.org/en-US/docs/Web/Guide/Events/…
-
@Kluska000 你所说的“调整”是什么意思..?是简单的 css 调整还是其他什么..?
标签: javascript jquery html ajax dom