事件在Backbone.js上无效

vojdkbi0  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(175)

我创建了一个视图,并具有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和所有的模型和视图都设置。
我是不是漏掉了什么?知道为什么事件不起作用吗?

yc0p9oo0

yc0p9oo01#

this.$el.addBgColor就是问题所在。

事件正在触发但是您正在$el jQuery对象上调用addBgColor,这不是jQuery函数,* 正如错误消息所告诉您的。*

检查what's the difference between $el and el

hgncfbus

hgncfbus2#

托尼,你的活动很酷,他们正在运行,他们只是没有做任何事情。
this.addBgColor()将在视图中调用您的函数。
this.$el引用html,并且没有名为addBgColor的属性分配给$el
你需要做一些事情,比如用这样的函数改变你的标签上的类...

addBgColor: function(){
  this.$el.className = 'bgColorImage'
},

.bgColorImage {
  background-image: url('bgColorImage.jpg');
}

相关问题