我只是想知道是否有办法重构这段代码:
Template.bookmarks.events({
// save changes
'keyup .set_tag' : function(e,t) {
if(e.which === 13) {
save_changes(e.target.id.substring(3));
}
},
'keyup .set_name' : function(e,t) {
if(e.which === 13) {
save_changes(e.target.id.substring(4));
}
},
'click .save_changes' : function(e,t) {
save_changes(e.target.id);
}
});
答案 0 :(得分:2)
尝试换行表单标记并听取该表单的提交事件。确保event.preventDefault()
然后你可以避免所有的键码13。
答案 1 :(得分:1)
function action(key, offset) {
return function(e, t) {
if (e.which === key) {
save_changes(e.target.id.substring(offset))
}
}
}
Template.bookmarks.events({
// save changes
'keyup .set_tag': action(13, 3),
'keyup .set_name': action(13, 4),
'click .save_changes': function(e, t) {
save_changes(e.target.id);
}
});
解决问题的一种方法。我不会尝试强制第三个事件处理程序进入action
函数,因为它会使action
函数更复杂。