主干嵌套视图具有不触发的事件
Backbone nested view has events which are not triggering
我有一个父视图它有一个click事件它渲染子视图。在这个子视图中是一个表单,我尝试验证然后提交。我的父视图是这样的
var MapView = Backbone.View.extend({
el: '.body',
template: _.template(MapTemplate),
render: function() {
...
},
events: {
'click #log-pane-title': 'loadLogView'
},
loadLogView: function() {
var eventLogView = new EventLogView({
id: properties._id
});
eventLogView.render();
}
});
子视图是这样的
var EventLogView = Backbone.View.extend({
el: '#eventlog',
logform: new NewLogForm({
template: _.template(AddLogTemplate),
model: new LogModel()
}).render(),
render: function() {
// Render the form
$("#addtolog").html(this.logform.el);
},
events: {
'submit #addlogentry': 'test'
},
test: function() {
alert('inside eventlogview');
return false;
}
});
我面临的问题是test()
从不开火。出于调试目的,我通过放置:
$('#addlogentry').on('submit', function() {
alert( "submit firing" );
return false;
});
在EventLogView
的render()
中。这确实触发,所以我不确定发生了什么,为什么test()
不触发。
为了避免作用域问题所有events
委托都作用域到Backbone中的el
视图。
所以你的#addlogentry
按钮应该住在你的EventLogView
el
。
你在render
中的健康检查应该看起来像这样,以模仿Backbone内部的工作方式:
this.$el.on('submit', '#addlogentry', function() {
alert( "submit firing" );
return false;
});
相关文章:
- Javascript嵌套事件
- 反应:在嵌套组件上冒泡点击事件
- jQuery从嵌套函数中获取触发事件的元素的id
- 为什么 DOM 事件处理程序中的嵌套函数会修复“this”绑定
- 事件委派模式,在按钮中使用 addEventListener 和嵌套元素
- 从嵌套函数中选择事件目标
- 嵌套事件在Javascript/JQuery中是一种很好的实践吗?
- 你能嵌套在点击事件上吗?
- 如何防止嵌套列表的点击事件
- 单击嵌套在按钮中的元素的事件
- 当 .on 事件位于嵌套函数中时,Jquery 事件冒泡
- 嵌套 Javascript 自定义事件
- 在嵌套循环中创建事件处理程序的效率:我在这里创建了 1440 个函数
- 多个页面之前创建由使用 jsfiddle 的嵌套列表视图引起的事件
- 我可以嵌套多深的骨干更改事件
- Material-ui:如何在嵌套组件中停止单击事件的传播
- 嵌套事件触发器
- 如何在结束加载嵌套的html页面(对象中的页面)后激发事件
- 嵌套视图:使用适当的ui绑定事件
- 防止嵌套元素触发父元素的事件