1

我是 Backbone 的新手并且理解这个想法,但是在正确编写一个简单的 toggleClass 函数时遇到了麻烦。我的网站是一个正方形网格,当一个正方形具有“悬停”类时,一些 CSS 会导致外观发生变化(显然)。我的问题是 toggleClass 不起作用。我的代码如下:

var IndexView = Backbone.View.extend({
el: $('#main'),
indexTemplate: $("#indexSquare").template(),

events: {
"mouseover .square"  : "mouseovercard"
},

render: function() {
    removeFallbacks();
    var sg = this;

    this.el.fadeOut('fast', function() {
    sg.el.empty();
    $.tmpl(sg.indexTemplate, sg.model.toArray()).appendTo(sg.el);
    sg.el.fadeIn('fast');
    });
    return this;
},

mouseovercard: function() {

    $(this).toggleClass('hover')
    console.log("hey you're hovering!")

}

});

这里到底有什么问题?任何帮助都感激不尽!

4

2 回答 2

3

this在您的代码中指的是View对象,使用对象currentTarget的属性event

mouseovercard: function(event) {
    $(event.currentTarget).toggleClass('hover');
    console.log("hey you're hovering!");
}
于 2013-05-08T00:35:36.290 回答
1

您可以使用主干视图的$el属性:

this.$el.toggleClass('hover');
于 2013-05-08T16:12:20.910 回答