我有一个应用程序,其中一种类型的 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/