事件不适用于Backbone.js

时间:2018-01-25 13:51:26

标签: javascript jquery backbone.js

我创建了一个视图,并且有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 个答案:

答案 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');
}