2015-01-06 55 views
1

我正在学习Backbone.js。我正在写mvc Todo名单供学习。 我有这样的代码:Backbone.js查看

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任务,当是一个点击。 例如,如果我点击第三个li中的.delete任务,我想获得第三个li。 我怎么能实现它?

回答

1

您可以使用currentTarget来伎俩。

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

demo

1

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

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)是当前元素。