Только начинаю здесь и, похоже, не могу заставить эту очень простую вещь работать. Все мои элементы отображаются так, как я ожидаю. Мои события регистрируются в firefox на вкладке «события», но ни одно из них не срабатывает (щелчок, наведение мыши и т. д.). Я использую следующее.
- магистраль 0.9.2
- подчеркивание 1.4.1
- Марионетка .10.2
- требуют-jquery (requireJs 2.1.0) (jquery 1.8.2)
Маршрутизатор
define([
'jquery',
'backbone',
'underscore',
'views/TodaysProgramsView',
'collections/ProgramSnippetCollection'],
function($, Backbone, _, TodaysProgramsView, ProgramSnippetCollection){
return Backbone.Router.extend({
initialize:function () {
var programSnippetCollection = new ProgramSnippetCollection([
{title:'underwater basket weaving'},
{title:'How to win friends and influence people and stuff'}
]);
this.mainView = new TodaysProgramsView({
el : $("#todays_programs"),
collection:programSnippetCollection
});
Backbone.history.start();
},
routes:{
'':'home'
},
'home':function () {
this.mainView.render();
}
});
});
Представление коллекции [TodaysProgramsView.js]
define([
'jquery',
'backbone',
'underscore',
'views/ProgramSnippetView'],
function($, Backbone, _, ProgramSnippetView){
return Backbone.Marionette.CollectionView.extend({
events: {
"click" : "clicked"
},
clicked : function(){
alert("parent clicked")
},
itemView : ProgramSnippetView
});
});
Представление элемента [ProgramSnippetView.js]
define([
'jquery',
'backbone',
'underscore',
'text!templates/programSnippet.html'],
function($, Backbone, _, template){
return Backbone.Marionette.ItemView.extend({
events: {
"click" : "courseClicked",
'mouseover' : 'mousedOver'
},
render: function(){
var json = this.model.toJSON();
console.log("RENDERING SNIPPET with data", json);
$(this.el).html( _.template(template, json) );
return this;
},
courseClicked : function(){
alert("you clicked a course, good work");
},
mousedOver : function(){
console.log("Mousin!");
}
});
});
'click':'courseClicked'
тоже должен работать. Событие Click будет просто прикреплено к el, поэтому, когда он нажмет на представление, предупреждение сработает, как я думаю... - person jmk2142   schedule 06.10.2012