【发布时间】:2011-12-27 19:43:04
【问题描述】:
尝试创建一个 todo 示例应用程序来搞乱主干。我无法弄清楚为什么任务复选框的点击事件没有触发。这是我的 TaskCollection、TaskView 和 TaskListView 的代码:
$(document).ready(function() {
Task = Backbone.Model.extend({});
TaskCollection = Backbone.Collection.extend({
model: 'Task'
});
TaskView = Backbone.View.extend({
tagName: "li",
className: "task",
template: $("#task-template").html(),
initialize: function(options) {
if(options.model) {
this.model = options.model
}
this.model.bind('change',this.render,this);
this.render();
},
events: {
"click .task-complete" : "toggleComplete"
},
render: function(){
model_data = this.model.toJSON();
return $(_.template(this.template, model_data));
},
toggleComplete: function() {
//not calling this function
console.log("toggling task completeness");
}
});
TaskListView = Backbone.View.extend({
el: $("#task-list"),
task_views: [],
initialize: function(options) {
task_collection.bind('add',this.addTask,this);
},
addTask: function(task){
task_li = new TaskView({'model' : task});
this.el.append(task_li.render());
this.task_views.push(task_li);
},
});
});
任务模板:
<script type='text/template' id='task-template'>
<li class="task">
<input type='checkbox' title='mark complete' class='task-check' />
<span class='task-name'><%= name %></span>
</li>
</script>
我似乎无法弄清楚为什么toggleComplete 事件不会为这些任务触发。我该如何解决这个问题?
【问题讨论】:
-
我的回答对你有用还是不清楚?
标签: javascript events backbone.js