我创建了一个视图,并具有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和所有的模型和视图都设置。
我是不是漏掉了什么?知道为什么事件不起作用吗?
2条答案
按热度按时间yc0p9oo01#
this.$el.addBgColor
就是问题所在。事件正在触发但是您正在
$el
jQuery对象上调用addBgColor
,这不是jQuery函数,* 正如错误消息所告诉您的。*检查what's the difference between
$el
andel
。hgncfbus2#
托尼,你的活动很酷,他们正在运行,他们只是没有做任何事情。
this.addBgColor()
将在视图中调用您的函数。this.$el
引用html,并且没有名为addBgColor
的属性分配给$el
。你需要做一些事情,比如用这样的函数改变你的标签上的类...