У меня есть один вопрос о Backbone.View
и его delegateEvents
. Вы можете прочитать в документах here о методе extend
. Используя этот метод, вы можете «переопределить функцию визуализации, указать ваши декларативные события» т.д.Ищете событие render в делегатеEvents в 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
в delegateEvents не работает:/