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())
},
});
我正在学习 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())
},
});