Backbone 中事件传播的奇怪问题。大多数人问如何停止事件传播,但我正在努力让我的事件传播!
这里我有两个 View 对象。MainView 包含 Item 视图并侦听单击事件以调用 run():
var MainView = Backbone.View.extend({
...
events: {
"click .item": "run" // works only if no click event in Item
},
render: {
// Item View object children
},
run: function() {
//run :)
}
});
项目视图对象也会监听自己的点击事件来切换开/关行为:
var Item = Backbone.View.extend({
...
events: {
"click" : "toggle" // MainView click event works when this is removed
},
toggle: function() {
this.model.toggle();
}
});
问题是当单击 Item 时 MainView.run() 没有被触发,而 Item.toggle() 有一个 click 事件。
但是,如果我删除 Item.toggle() 单击事件,MainView.run()会触发。让我得出这样的结论,即事件以某种方式被迫停止传播,超出了我的控制。
我怎么解决这个问题?我是否遗漏了一些明显的东西,或者这是不可避免的?
感谢您的任何和所有建议和答案:)。