使用 Backbone 的 View 时,可以象传统 jQuery 那样定义事件,$("selector").click(function(){...})。幸运的是 Backbone 让我们在 View 中定义事件变得更为简单和集中,只要设置 View 的 events 属性,配置 事件,元素以及相应的处理方法,基本模式如下:
events: {
"click button": "event_handler",
"focus #name": "event_handler"
},
event_handler: function( event ){
alert(event.target.id);
}
格式是 "事件 选择器": "事件处理函数名", 奇怪为什么这里不是使用事件处理函数名的引用,也就是不能写成下面两种方式:
“click button”: event_handler
或者 "click button": function(event){ ..... }
1
2
“clickbutton”:event_handler
或者"click button":function(event){.....}
也就不能更好的进行语法检查和一气呵成的写上面的事件代码。
还是上完整的演示代码
Button not from Backbone: Button2
Button1
var AppView = Backbone.View.extend({
el: '#container',
initialize: function(options) {
this.render();
},
render: function() {
var template = _.template($("#my_template").html());
this.$el.html(template);
},
events: {
"click button": "event_handler",
"blur #name": "event_handler"
},
event_handler: function( event ){
alert(event.target.id);
}
});
var appView = new AppView();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38