我有这个并且它正在工作:
function cancelFunction(targetid,e) {
if (targetid.substring(0,9) == "editinput") {
if (e.keyCode != 27) {
return;
}
var target = targetid.substring(10);
}
else
var target = targetid.substring(11);
// DO OTHER STUFF HERE
}
$(\'[id^=editinput]\').keypress(function(e) {
var targetid= $(this).attr("id");
cancelFunction(targetid,e);
});
$(\'[id^=canceledit]\').click(function() {
var targetid= $(this).attr("id");
cancelFunction(targetid,"");
});
我想知道是否可以合并keypress
事件于 [id^=editinput]
和click
事件于 [id^=canceledit]
在一次调用中声明函数?
我的意思是这样的(显然是错误的语法):
$((\'[id^=canceledit]\').click)((\'[id^=editinput]\').keypress)(function(e) {
var targetid = $(this).attr("id");
if (targetid.substring(0,9) == "editinput") {
if (e.keyCode != 27) {
return;
}
var target = targetid.substring(10);
}
else
var target = targetid.substring(11);
// DO OTHER STUFF HERE
});
最佳答案
最简单的可能是进行一些重构
function cancelFunction(e) {
if (this.id.substring(0,9) == "editinput") {
if (e.keyCode != 27) {
return;
}
var target = this.id.substring(10);
} else {
var target = this.id.substring(11);
}
}
$('[id^=editinput]').on('keypress', cancelFunction);
$('[id^=canceledit]').on('click', cancelFunction);
关于javascript - JQuery 中具有不同事件的多个目标 ID 的相同功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27731416/