【发布时间】:2014-11-13 15:12:52
【问题描述】:
我们有一个 Web 应用程序,它在服务器端吐出元素,一些通过 Backbone 吐出——并且有一个简单的 jQuery.each() 语句,它可以翻转页面上的元素并根据组件的大小添加/删除某些类。我在“init”函数中调用它,但它显然不适用于加载时不在页面上的任何元素;在 Backbone 范围内。
我不想在每个 Backbone 实例中重新调用此函数(以防我们最终添加更多视图来呈现此函数所需的其他项目)并希望像 $(document).on() 函数这样的东西像我一样工作对于正常的点击、悬停等。我还没有找到任何关于如何使用jQuery.each() 进行这项工作的示例,所以如果我能提供任何关于我将如何去做的见解,我将不胜感激。
【问题讨论】:
-
修改动态加载的内容没有神奇的解决方案。您需要在加载后的面板上运行该代码。所有浏览器只能动态处理 CSS 样式和事件。
-
创建一个进行修改的函数。让该函数接受一个 jQuery 对象。在您的
each中,调用该函数并传入对象。当您加载新的 html 时,调用传入 jquery 对象的相同函数。 -
正如 TrueBlueAussie 所说,您不能动态地收到这些事情的通知。如果它的响应速度约为 500 毫秒就足够了,您可以设置每 500 毫秒运行一次每个语句,并将处理的元素设置为脏,并且只在非脏元素上运行您的选择器。
-
看起来我可以为此使用突变观察者developer.mozilla.org/en-US/docs/Web/API/MutationObserver
标签: javascript jquery backbone.js backbone-events