Backbone.js 查看

Backbone.js View

我正在学习 Backbone.js。我正在编写 mvc Todo 列表以供学习。 我有这样的代码:

   var TaskView = Backbone.View.extend({
    el: '#tasks',
    model: Todo,
    events: {
        'click > li .delete-task' : 'removeTask',
        'click > li .complete-task' : 'completeTask'
    },
    removeTask : function () {
        console.log(this.get('model'));
    },
    completeTask : function () {

    }
});

所以,我无法获得.delete-task,什么时候点击。 例如,如果我在第三个 li 中单击 .delete-task,我想获得第三个 li。 我怎样才能实现它?

我找到答案了。 我应该写这样的代码:

var TaskView = Backbone.View.extend({
        el: '#tasks',
        model: Todo,
        events: {
            'click > li .delete-task' : 'removeTask',
            'click > li .complete-task' : 'completeTask'
        },
        removeTask : function (e) {
            console.log($(e.target));
        },
        completeTask : function () {

        }
    });

$(e.target) 是当前元素。

您可以使用 currentTarget 来解决这个问题。

TaskView = Backbone.View.extend({
    el: '#tasks',
    events: {
        'click .delete-task' : 'removeTask'
    },
    removeTask : function (e) {
        alert($(e.currentTarget).text())
    },
});

demo