我有这个BackBone视图:
window.GDataTableView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'render', 'Added', 'Removed' );
notifications.bind('add', this.Added );
notifications.bind('remove', this.Removed );
Entry.bind('change:Rotation', this.Triangle);
},
events: {
'keypress #my_input_text_box' : "foo"
},
foo: function(){
alert('bar');
},
...
..
.
这是一个相当简单的视图,但我想在我的输入字段中分配一个按键事件。它只是位于页面中的某个文本字段。现在,当我按下输入字段中的某个键时没有任何反应。没有任何警报。
我做错了吗?
答案 0 :(得分:2)
events
对象的范围限定为当前视图,因此它不会绑定到您想要的输入(因为它不在视图中)。相反,做
initialize: function() {
// your original code
$("#my_input_text_box").on("keypress", this.foo);
},
换句话说,您可以在视图实例化时定义事件侦听器。
根据您的使用情况,您可能需要在视图被销毁时处理解除绑定事件。