Backbone.js查看已注册但未触发的事件
只是刚刚开始,似乎无法让这个非常基本的东西工作。我所有的元素都呈现出我所期望的效果。我的事件在firefox的“事件”选项卡中注册,但它们似乎都没有触发(单击、鼠标悬停等)。我正在使用以下命令Backbone.js查看已注册但未触发的事件,backbone.js,marionette,backbone-views,backbone-events,Backbone.js,Marionette,Backbone Views,Backbone Events,只是刚刚开始,似乎无法让这个非常基本的东西工作。我所有的元素都呈现出我所期望的效果。我的事件在firefox的“事件”选项卡中注册,但它们似乎都没有触发(单击、鼠标悬停等)。我正在使用以下命令 主干网0.9.2 下划线1.4.1 木偶 需要jquery(RequireJS2.1.0)(jquery 1.8.2) 路由器 集合视图[TodaysProgramsView.js] 项目视图[ProgramSnippetView.js] 在经历了许多挫折和数小时的javascript调整之后,我注意
- 主干网0.9.2
- 下划线1.4.1
- 木偶
- 需要jquery(RequireJS2.1.0)(jquery 1.8.2)
在经历了许多挫折和数小时的javascript调整之后,我注意到有一个div集的z索引为2。这覆盖了我的目标,吞噬了所有的事件。叹气。你有没有尝试过更明确地使用事件“click#theIDoftheElement”:“courseClicked”?起初我也是这么想的,但是
“click':“courseClicked”
应该也可以。点击事件将被附加到el上,因此当他点击视图时,警报将触发我thinketh…我尝试了很多方法,但它拒绝触发。无法理解我做错了什么
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();
}
});
});
define([
'jquery',
'backbone',
'underscore',
'views/ProgramSnippetView'],
function($, Backbone, _, ProgramSnippetView){
return Backbone.Marionette.CollectionView.extend({
events: {
"click" : "clicked"
},
clicked : function(){
alert("parent clicked")
},
itemView : ProgramSnippetView
});
});
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!");
}
});
});