我有以下 Backbone.js 视图:
var EditBook = Backbone.View.extend({
el: '.page',
render: function (id) {
var that = this,
book = new Book({
id: id
});
book.fetch({
success: function (res) {
var template = _.template(editBookTpl, {
bookInfo: res
});
that.$el.html(template);
},
error: function () {
console.log('Error! Could not retrieve the book.');
}
});
},
events: {
// This event doesn't work...
'submit .editBookButton': 'editBook'
},
// I cannot seem to be able to bind the submit event to the .editBookButton
editBook: function (e) {
e.preventDefault();
console.log('clicked');
}
});
我所做的就是加载一个带有underscore.js的模板
模板中有一个表单,其中包含一个提交按钮,该按钮的类为.editBookButton
我想使用Backbone的事件,但它不起作用。
知道为什么吗?
是否有办法确保事件只触发这个视图中具有这个类的元素?
我也发现了类似的问题,但答案并不完整。
2条答案
按热度按时间fhg3lkii1#
按钮没有
submit
事件,只有表单有。因此,您应该尝试在
form
元素上捕获submit
事件。qf9go6mv2#
不要使用按钮选择器,而应使用窗体选择器。
假设html代码为:
则代码将为: