5
是否可以使用Backbone.View.events
定义来侦听自定义子视图事件?如何使用`Backbone.View.events`定义来侦听自定义子视图事件?
儿童定义
所有click
事件被缓存起来,并触发我clicked
功能:
var Child = Backbone.View.extend({
events : {
'click' : 'clicked'
},
clicked: function() {
alert('View was clicked');
this.trigger("customEvent");
},
render: function() {
this.$el.html("<span>Click me</span>");
}
});
父定义
为什么不customEvent
事件打电话给我action
功能?
var Parent = Backbone.View.extend({
events : {
'customEvent' : 'action'
},
action : function() {
alert('My sub view triggered a custom event');
},
render : function() {
var child = new Child();
this.$el.append(child.el);
child.render();
}
});
创建和渲染父
var parent = new Parent();
parent.$el.appendTo(document.body);
parent.render();
我知道可以使用listenTo
代替,但使用的事件定义似乎更清洁。
我的目的是建立一个子视图(例如颜色选择器),它在完成后触发事件。
,你怎么看待这个'$ el.trigger(“自定义事件”。 )'? – jantimon 2013-04-07 10:27:10
再一次,你的el元素没有听到“customEvent”,所以这不起作用。对 ?请看JSbin代码。 – sachinjain024 2013-04-07 10:29:07
它确实有效:http://jsfiddle.net/YLzUJ/2/ – jantimon 2013-04-07 10:30:15