我有一個關於Backbone.View
及其delegateEvents
的問題。你可以閱讀here的文檔extend
方法。使用這種方法,你可以「覆蓋渲染功能,指定您的聲明事件」等尋找渲染事件在代理事件Backbone.View
我有一個問題關於聲明事件或delegateEvents(不知道我應該怎麼稱呼它)。它們被描述爲here。這裏是一個例子:
var DocumentView = Backbone.View.extend({
events: {
"dblclick" : "open",
"click .icon.doc" : "select",
"contextmenu .icon.doc" : "showMenu",
"click .show_notes" : "toggleNotes",
"click .title .lock" : "editAccessLevel",
"mouseover .title .date" : "showTooltip"
},
open: function() {
window.open(this.model.get("viewer_url"));
},
select: function() {
this.model.set({selected: true});
},
...
});
正如您所看到的,您可以在模板DOM中的特定對象上添加不同的事件。像click
或mouseover
。所以,有這個模板:
<foo></foo>
{#myplayers}
<player class="normal" value="{player}" style="{style}"></player>
{/myplayers}
您可以在每一個球員添加不同click
事件,像這樣:
events: {
'click player': 'playerClick'
},
playerClick: function(e) {
var playerValue = e.currentTarget.getAttribute('value');
// HERE: e.currentTarget I've particular player
}
我的問題:我可以宣佈在類似的方式,單擊事件呈現事件?我想捕捉單個玩家(不是整個列表)呈現的事件。我需要得到e.currentTarget
那裏,並改變它的CSS一點點。
我正在尋找這樣的事情:
events: {
'render player': 'playerRendered'
},
playerRendered: function(e) {
var playerValue = e.currentTarget.getAttribute('value');
// HERE: e.currentTarget I've particular player
}
我怎樣才能做到這一點?因爲代理事件中的render
不起作用:/