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