javascript - 嵌套 View : binding events with proper ui

标签 javascript backbone.js backbone-views backbone-events

我有一个应用程序,其中一种类型的 View 嵌套在同一类型中。像这样的http://take.ms/ylAeq

如何捕获 View 按钮上的事件并在正确 View 上触发事件?

当我有 ~10 触发事件时,因为主干将事件绑定(bind)到所有内部按钮,而不仅仅是正确 View 的按钮。

我有一个想法 - 我在模板 id="node_body_<%= id %>" 中制作所以每个按钮 id 都基于其 View 的模型 id;但我怎样才能将它传递给事件对象呢?事件:{ "click #node_body_" + id : 'method' }不起作用。

最佳答案

问题是事件冒泡。内部 View 上的事件会冒泡到其父 View 的 el 中,后者正在监听同一选择器上的事件,进而触发其处理程序。

可以通过在相应 View 的处理程序中停止事件传播来解决此问题:

Backbone.View.extend({
  events: {
    'click .thing': 'do_thing'
  },
  do_thing: function(event) {
    event.stopPropagation(); // prevents event reaching parent view
  }
});

关于javascript - 嵌套 View : binding events with proper ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34757177/

相关文章:

javascript - 如何通过 Backbone.js 或 React.js 使用服务器生成的 HTML 而不是 JSON?

javascript - 绑定(bind)到表单时的主干模型状态

javascript - 使用javascript将 'long'数据转换为 'wide'数组

javascript - 使用 jQuery 解析 XML

angularjs - BackboneJS 和 AngularJS 排序稳定吗?

javascript - 将变量从 Backbone.js 路由器初始化函数传递到另一个路由器函数的 forEach 语句

javascript - 使用 Rangy Library 在 contentEditable div 中获取准确的插入符位置

javascript - Typescript嵌套函数包装返回类型问题

javascript - 在 View 的事件属性中使用 backbone.js 监听与 @el 相关的事件

backbone.js - 防止 Backbone 僵尸 View