我试图将两个不同的事件组合成更紧凑的事物。这是到目前为止使用的:
$(document).on('keypress', 'editable.click-edit', function(e) {
if(e.which==13) {
fns._resetPageEdit(); //enter
}
});
$(document).click(function() {
fns._resetPageEdit(); // click anywhere
});
基本上,如果用户按下'输入'键在指定的文本框中,重置方法触发。如果用户点击其他任何地方,也会触发相同的方法。我觉得这有点乱,因为如果我要加入更多选项,组织它会更加混乱。任何建议将不胜感激。
答案 0 :(得分:1)
你可以做很多事情来清理它,事实上这两个事件明显不同,所以你想让它们分开:
// Keep the keypress event trigger local to the input
$('input#someinput').bind('keypress',function(e){
var keynum = e.which ? e.which : e.keyCode;
if( keynum == 13 ) {
// enter key was pressed
fns._resetPageEdit();
}
});
// Handle a click anywhere on the page
$(document).click(function() {
fns._resetPageEdit();
});
答案 1 :(得分:0)
除了删除文档click
处理程序上的匿名函数,删除重复选择器并缩短if
块之外,在示例中没有其他任何内容可以整理:
$(document)
.on('keypress', 'editable.click-edit', function(e) {
e.which == 13 && fns._resetPageEdit();
})
.on('click', fns._resetPageEdit)