【问题标题】:Document listener jQuery.each文档监听器 jQuery.each
【发布时间】: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


【解决方案1】:

Mutation Observers 是我的选择。

【讨论】:

    猜你喜欢
    • 2015-05-12
    • 2012-06-01
    • 2012-06-06
    • 2021-01-08
    • 2020-03-15
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多