【发布时间】:2015-03-02 12:49:58
【问题描述】:
我是Backbone的新手,想写一些简单的应用来学习Backbone。
应用程序包含一个项目列表,用户可以添加/删除/项目,当用户悬停其中一个项目视图时,项目应将其颜色更改为红色,否则,其颜色应为黑色。
var ItemView = Backbone.View.extend({
tagName: 'li',
events: {
'click a.delete': 'onDelete',
'mouseover': 'onHoverIn',
'mouseout': 'onHoverOut'
},
template: _.template($('#tpl-item').html()),
initialize: function () {
this.model.on("change", this.render, this);
},
render: function () {
var item = this.model;
this.$el.css("color", item.get("hover") ? "red" : "black").html(this.template(item.toJSON()));
return this;
},
onDelete: function () {
this.model.destroy();
},
onHoverIn: function () {
this.model.set("hover", true);
},
onHoverOut: function () {
this.model.set("hover", false);
}
});
这是应用程序的完整代码:jfiddle live example
但是,当我将鼠标缓慢地移动到项目上时,它会起作用,一旦我快速移动,我发现可能有多个项目被涂成红色,这是意料之中的。
发生了什么事?
【问题讨论】:
-
感谢您的链接,但一旦我检查它,我发现没有正确的答案。即使我尝试使用
mouseentermouseleave而不是mouseout/over。
标签: backbone.js