为什么在 Backbone.js 中第二次渲染后事件没有触发?

2024-07-01

我正在 Backbone.js 创建一个应用程序,它有一个父视图和多个子视图。子视图包含它们监听并执行功能的链接。

父视图存储所有子视图的列表。在渲染函数中,计算完自己的 html 后,它会执行以下操作:


$(this.el).html(html);
for (var i = 0; i < this.views.length; i++){
    $('.children', this.el).append(this.views[i].render().el);
}

回答:问题是我在渲染期间创建链接。 IE。在第一次渲染(从 init 调用)时,事件成功绑定到链接。但是,由于所有后续的 render 调用都会重新创建整个元素,因此新链接没有绑定到它的处理程序。这是通过添加 @Tom Tu 解决方案解决的this.delegateEvents()到渲染


您可能正在使用 jqueryremove函数某处从视图中删除子视图 - 它会自动删除绑定到元素(this.el)的所有事件 - 在events目的。您可以使用this.delegateEvents()渲染模板后渲染子视图中的方法以重新绑定中设置的事件委托events对象或使用jquerydetach方法而不是从 DOM 中删除元素而不删除事件绑定(link http://api.jquery.com/detach/). The delegateEvents该方法相当昂贵,因此我推荐detach如果您正在渲染长列表的子视图,则删除要重用的元素的方法 - 如果它只是几个视图,则无关紧要。

另一种可能性是您已设置events对象错误 - 很难从提供的代码量中看出,但我打赌第一个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 Backbone.js 中第二次渲染后事件没有触发? 的相关文章

  • 在 Javascript 中访问对象属性

    我正在尝试访问电子邮件和密码字段 但我不知道在哪里 0 来了 我正在从 rethinkdb 检索对象 它看起来不错 没有 0 但后来我使用 Lodash assign 像这样的方法 var user new User var finduse
  • .catch() 的承诺被拒绝,但在 Promise.allSettled 中显示为已履行[重复]

    这个问题在这里已经有答案了 这是问题的简化版本 有一些承诺 但很少 then 链条 以及一个 catch 错误处理块 每个承诺都可能解决或拒绝 因此我使用Promise allSetted根据排列顺序和状态了解哪个承诺失败了 当所有承诺都解
  • 点运算符不获取 Mongoose Document 对象的子属性

    console log gt gt gt gt gt gt user user outputs gt gt gt gt gt gt user username user1 salt 3303187e50a64889b41a7a1c66d3d
  • Next.js 切换 div 标签的显示

    Code export default function Header let showMe false function toggle showMe showMe return lt gt
  • 限制 JavaScript 函数调用,但进行排队(不丢弃调用)

    函数如何限制其调用速率 如果调用过于频繁 则不应丢弃 而应排队并及时间隔开 相隔 X 毫秒 我看过throttle http drupalmotion com article debounce and throttle visual exp
  • 使用 Getter 函数从 Angular 服务公开对象返回未定义

    这是代码 authServ getUser 从任何地方返回 一个空对象 对应于此 var 的声明 即使在我根据此 问题 1 对返回语法进行修改之后也是如此 谁能告诉我这是什么问题吗 我不明白为什么它不起作用 app factory auth
  • 用javascript去掉未使用的小数

    我有一个货币输入 只需要返回有效数字 输入始终有两位小数 因此 4 00 gt 4 4 10 gt 4 1 4 01 gt 4 01 这是我目前正在做的事情 chop off unnecessary decimals if val char
  • Javascript 日期时间字符串转 UTC 日期时间和 UTC 转本地日期时间

    我需要将字符串转换为 UTC 日期 然后将 UTC 日期转换为本地日期 这是我的代码 var dateStr 9 8 2015 12 44 00 PM console log strtoUTCtoLocal dateStr function
  • Javascript:单击正文中除其中一个元素之外的任何位置

    我希望能够单击正文中除该特定元素之外的任何位置 我无法找出我所做的代码有什么问题 当我单击一个特定元素时 except inside body 我不想让它隐藏 但是当我点击body它应该隐藏 HTML
  • FullPage.js - 在不匹配的部分上将活动类添加到菜单锚点

    好吧 标题可能有点难以理解 我会尝试解释一下 所以我正在使用整页 js https github com alvarotrigo fullPage js 我总共有9个部分 家 关于 关于有 6 个 下节 是第一个关于部分的延续 接触 菜单中
  • d3.js 雷达图 - 填充线条之间

    我正在尝试在其中两个三角形之间创建填充 例如在红色和绿色三角形之间创建红色填充 有人知道如何做到这一点吗 我见过另一个雷达图的例子 我相信它做了类似的事情 尽管我认为他们使用CSS而不是d3创建填充 使用径向图用 mbostock 的答案解
  • javascript 权限被拒绝访问属性

    我在从不同的 iframe 访问属性时遇到问题 我不断收到此权限被拒绝访问属性错误 我见过有人多次询问他们是否使用 file 但没有人 除了我 所以这个问题永远不会得到解决 我不会在网络上这样做 我所有帧的 src 都位于硬盘驱动器上的同一
  • 反序列化 jQuery 序列化表单

    我正在尝试将表单输入传递到 WebMethod 中并执行某些操作 我用了jQuery 序列化 http api jquery com serialize
  • 多个选择器:确定触发选择器?

    这是一个我无法弄清楚的小问题 我相信很快就会有人回答 有多个选择器 例如 a button span xyz a another click function e var clicked element 我如何找出实际单击了哪个选择器 我需
  • Javascript“悬停时”循环

    任何人都可以帮助我解决这个问题 我有一个按钮 当悬停时会触发一个操作 但我希望只要按钮悬停就重复它 我很感激任何解决方案 无论是在 jquery 还是纯 javascript 中 这是我的代码此时的样子 在 jquery 中 var scr
  • 每个内每个内每个

    我是新使用 JSON 和 getJSON 函数等 我正在尝试从 JSON 中获取数据 该 JSON 会下降几个级别并且可以有多个子级 目前 我可以通过将 each 与另一个 each 一起使用来查看我想要的值 例如 each data fu
  • 'data' 为 null 或不是对象 IE8

    我正在使用 iframe 将消息传输到其父页面postMessage 这是我的代码 在 iframe 中 history date click function event window top postMessage this text
  • 确定方法是同步还是异步

    在node js中 是否可以 使用函数 确定方法是同步还是异步 我想编写一个执行以下操作的函数 function isSynchonous methodName if the method is synchronous return tru
  • 为 div 标签设置属性

    我有一个简单的代码 div class content div 我想使用 javascript 回显 div 标签内的某些内容以显示这种方式 div class content div 我需要使用 javascript 因为如果屏幕宽于 9
  • VueJs 操作内联模板并重新初始化它

    这个问题类似于VueJS 在内联模板组件中重新编译 HTML https stackoverflow com questions 34087195 vuejs re compile html in an inline template co

随机推荐

  • Rbenv 权限被拒绝问题

    将 Rails 应用程序部署到 DO Droplet 后 我 无法运行 Rails 应用程序 我部署了 并安装了所有内容 包括rbenv 下列的本指南 https gorails com deploy ubuntu 14 04 Rbenv
  • 为什么打印到 XPS 文档时会丢失数据绑定?

    Update 装订作品 问题在于 XpsDocumentWriter 无法正确写入固定文档序列的第一个文档的第一页 这似乎是很多做此类事情的人 即全球五名开发人员 遇到的问题 解决方案有点奇怪 我将其作为答案包含在内 好吧 它比问题所暗示的
  • NetSuite python TBA 身份验证

    我对使用 SOAP 进行 NetSuite 调用这一领域还不熟悉 因此 我对如何解决问题的思考可能完全错误 这是我试图解决的问题 语言 Python Zeep 我想将我的应用程序从电子邮件传递转移到基于令牌的身份验证 在 Python 中
  • 如何在操作链接中指定区域名称?

    我有一个共享母版页 我在 mvc 2 应用程序的两个不同区域使用它 母版页有一个操作链接 当前指定控制器和操作 但是如果我位于错误的区域 该链接当然不起作用 我发现采用区域参数的 actionlink 没有过载 可以这样做吗 弄清楚了 Ht
  • 在 pygame 的类/子类中设置和显示精灵时遇到问题

    你好 我对创建游戏 编码相对较新 所以提前对我将要带来的众多问题以及我的代码的糟糕组织感到抱歉 我试图让我的班级有一个将自己渲染成的功能游戏而不是使用外部资源 class Animal pygame sprite Sprite def in
  • 如何在 Rust 工具链之间切换?

    rustup help toolchain列出以下子命令 SUBCOMMANDS list List installed toolchains install Install or update a given toolchain unin
  • 有没有一个工具可以在 Ubuntu 上监视远程 Git 存储库并在提交时弹出通知?

    我希望当人们对我正在监视的存储库进行提交时弹出通知 不托管在 github 等任何特定站点上 因此需要能够将存储库 URL 添加到受监视存储库列表中 正如标题所示 这是针对 Ubuntu 的 但欢迎跨平台 因此 git 通知 https g
  • Android 地理编码器配额限制

    有人可以建议有关 Google 地图地理编码 api 的配额限制吗 我在 Android 上使用地理编码 Google 地图 Api 网站规定每天的限制为 2 500 个 这是 API 密钥的总数吗 或者每个IP地址 我找到了这篇文章 ht
  • “.then(function(a){ return a; })” 是 Promise 的无操作吗?

    我正在阅读这个关于书架的教程 http dangertomanifold com working with relational data in bookshelf js 书架使用蓝鸟承诺 有很多类似这样的例子 var getEvents
  • 单元测试 DefaultHttpRequestRetryHandler

    我正在研究一些将文件存储到远程服务器的遗留代码 我想使用 Apache 的 DefaultHttpRequestRetryHandler 来实现重试逻辑 下面显示了实现的简化版本 如何测试我的重试逻辑 我可以通过重写 DefaultHttp
  • 类模板中名称解析的实际结果与c++ 03标准不同

    我在 Xcode 4 1 和 Visual Studio 2008 上测试了 C 标准 ISO IEC 14882 03 14 6 1 9 中的代码 两个编译器的输出都与标准的预期结果不同 代码粘贴在下面 include
  • 在线性布局中以编程方式移动布局位置

    我有以下 xml
  • 根据单例设计模式使用服务加载器创建可扩展应用程序

    我正在做一个项目IntelliJ IDEA我想在我的 java 应用程序中添加对可扩展应用程序的支持 方法是 创建一个jar文件 在这个jar文件中应该有一个META INF services目录 在这个目录中 我需要添加一个文件 其名称包
  • 使用串联和 LIKE 的查询性能

    有人可以解释这 3 个查询之间的性能差异吗 concat 功能 explain analyze select from person where concat last name first name middle name like Se
  • Android在WebView中打开URL

    我首先创建 Android 测试应用程序 我正在使用 webview 表单 并插入一些 url 当我运行应用程序时 它工作正常 但是 当我打开应用程序并单击其他页面链接时 我会得到选择的列表 例如 在 Google Chrome 上打开它
  • 使用 tkinter 后 Pygame 窗口不会移动或关闭

    我已经在很多不同的项目中遇到这个问题很多年了 所以我真的想知道如何解决它 例如 在我的一个项目中 我为游戏创建了一个关卡编辑器 关卡编辑器可以选择使用文件保存和加载不同的关卡tkinter filedialog 现在 在我选择文件后 游戏仍
  • 为什么不能将 Windows 窗体的大小绑定到 ApplicationSettings?

    更新 已解决 有代码 我已经成功了 请参阅下面我的答案以获取代码 https stackoverflow com questions 18585 why cant you bind the size of a windows form to
  • FirebaseError:[code=resource-exhausted]:写入流已耗尽允许的最大排队写入数

    我最近遇到了一个问题 即他们对 Firestore 的写入都不起作用 从日志来看 对本地缓存 IndexedDB 层的写入似乎工作正常 并且实时侦听器是从本地缓存触发的 但是 没有任何写入内容保存在服务器上 FirebaseError co
  • 在magento中前端和后端(admin或adminhtml)之间共享模板

    我希望在后端重用某个前端 UI 元素 在 design adminhtml 下 这主要包括重用模板 phtml 然而 从后端引用前端布局句柄似乎会更好 magento 是否提供共享 UI 组件的位置 将它们声明为共享的方法 或者跨前端 ad
  • 为什么在 Backbone.js 中第二次渲染后事件没有触发?

    我正在 Backbone js 创建一个应用程序 它有一个父视图和多个子视图 子视图包含它们监听并执行功能的链接 父视图存储所有子视图的列表 在渲染函数中 计算完自己的 html 后 它会执行以下操作 this el html html f