我创建了一个视图,并且有ff代码:
var app = app || {};
app.singleFlowerView = Backbone.View.extend({
tagName: 'article',
className: 'flowerListItem',
// tells where to apply the views
template: _.template( $("#flowerElement").html() ),
// render
render: function(){
var flowerTemplate = this.template(this.model.toJSON());
// el contains all the prop above and pass to backbone
this.$el.html(flowerTemplate);
return this;
},
events: {
'mouseover': 'addBgColor',
'mouseout': 'removeBgColor'
},
addBgColor: function(){
this.$el.addBgColor('bgColorImage');
},
removeBgColor: function(){
this.$el.removeBgColor('bgColorImage');
}
});
当我运行到我的HTML文件时,我得到错误addBgColor和removeBgColor不是一个函数。我有这个CSS,所有模型和视图都已设置好。
我在这里遗漏了什么吗?知道为什么事件不起作用吗?
答案 0 :(得分:2)
this.$el.addBgColor
是问题所在。
事件正在触发,但您在addBgColor
jQuery对象上调用$el
,这不是jQuery函数,就像错误消息一样告诉你。
检查https://developer.android.com/studio/write/java8-support.html。
答案 1 :(得分:0)
this.addBgColor()
会在视图中调用您的函数。
this.$el
指的是html,并且没有分配给addBgColor
的名为$el
的属性。
您需要执行类似的操作,例如使用类似的函数更改标记上的类...
addBgColor: function(){
this.$el.className = 'bgColorImage'
},
.bgColorImage {
background-image: url('bgColorImage.jpg');
}