【问题标题】:Modify elements dynamically动态修改元素
【发布时间】: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 修改事件

但我不确定这些是否是好的解决方案 - 我认为它们对性能完全不利,而且我不觉得第一个真的很可靠。

【问题讨论】:

标签: javascript jquery html ajax dom


【解决方案1】:

您可以使用自定义event,每次append 时都会触发该@,或者创建一个新的.super-elem,例如:

...
$(".super-elem").append() //or whatever
$.event.trigger("superElemCreate");
..

$(document).on('superElemCreate', function() { 
});

【讨论】:

  • 我的问题的主要和关键点是我不想在任何地方手动触发它,因为在某些情况下(例如从自定义插件调整内容等)它需要大量自定义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多