0
有人可以在我的jQuery书籍中解释这一点吗?我不明白这个变量的目的。使用变量初始化代码
下面是书中的一些解释:
的taskController会记住它在叫初始化。这一个局部变量被initalized确保不管多少次init方法被调用,它仅将实际初始化控制器一旦
jQuery代码:
tasksController = function() {
var taskPage;
var initialised = false;
return {
init : function(page) {
if (!initialised) {
taskPage = page;
$(taskPage).find('[required="required"]').prev('label').append('<span>*</span>').children('span').addClass('required');
$(taskPage).find('tbody tr:even').addClass('even');
$(taskPage).find('#btnAddTask').click(function(evt) {
evt.preventDefault();
$(taskPage).find('#taskCreation').removeClass('not');
});
$(taskPage).find('tbody tr').click(function(evt) {
$(evt.target).closest('td').siblings().andSelf().toggleClass('rowHighlight');
});
$(taskPage).find('#tblTasks tbody').on('click', '.deleteRow', function(evt) {
evt.preventDefault();
$(evt.target).parents('tr').remove();
});
$(taskPage).find('#saveTask').click(function(evt) {
evt.preventDefault();
if ($(taskPage).find('form').valid()) {
var task = $('form').toObject();
$('#taskRow').tmpl(task).appendTo($(taskPage).find('#tblTasks tbody'));
}
});
initialised = true;
}
}
}
}();
像书中说的,他们希望控制器只能初始化一次。因此他们在首次使用init方法初始化控制器后将标志设置为true。之后,即使多次调用init方法,由于初始化变量的值也不会执行初始化代码。希望这可以帮助 –