1
這行代碼的用途是什麼:list.on('dblclick', 'label', this.edit.bind(this));
我很困惑,爲什麼this.edit.bind(this)
被傳遞,而不是隻有this.edit
。請注意,這是從'todo mvc' jquery example開始的,並且第一個版本確實是在沒有綁定調用的情況下編寫的。它是在稍後的更新中添加的。背景:將'bind'作爲回調與'on'的調用相結合的用途是什麼?
var App = {
init: function() {
this.todos = util.store('todos-jquery');
this.cacheElements();
this.bindEvents();
Router({
'/:filter': function (filter) {
this.filter = filter;
this.render();
}.bind(this)
}).init('/all');
},
},
bindEvents: function() {
var list = this.$todoList;
list.on('dblclick', 'label', this.edit.bind(this));
list.on('click', '.destroy', this.destroy.bind(this));
},
edit: function (e) {
var $input = $(e.target).closest('li').addClass('editing').find('.edit');
$input.val($input.val()).focus();
感謝您的理解!我誤以爲bind()是一個jQuery綁定。 – stbtrax