大家好日子!
我在一个函数中合并代码时遇到问题。 (如果可能的话)。
首先:
以下是代码:
function enableRegButton() {
$('#registerExist').prop('disabled', false);
$('#edit').prop('disabled', false);
// regButton execute when Enter key pressed
$(document).unbind("keyup").keyup(function(e){
var code = e.which; // recommended to use e.which, it's normalized across browsers
if(code==13)
{
$("#registerExist").click();
}
});
}
第二
以下是代码:
$(document).keyup(function(e) {
if (e.keyCode == 27) { // escape key maps to keycode `27`
$('#registerExist').prop('disabled', true);
$('#edit').prop('disabled', true);
document.getElementById("enStudID").value = "";
document.getElementById("enInfoID").value = "";
document.getElementById("enCoffID").value = "";
document.getElementById("enYearID").value = "";
}
});
现在,我想要做的是上面的两个代码将在一个函数中合并,它将调用该函数并触发所有这些代码,因此当我编辑代码时,它将被集中。
这是我的最终代码:
function enableRegButton() {
$('#registerExist').prop('disabled', false);
$('#edit').prop('disabled', false);
// regButton execute when Enter key pressed
$(document).unbind("keyup").keyup(function(e){
var code = e.which; // recommended to use e.which, it's normalized across browsers
settings();
});
}
// This code is for ESC button when pressed.
$(document).keyup(function(e) {
settings();
});
function settings(){
if(code==13)
{
$("#registerExist").click();
}
else if (code==27){ // escape key maps to keycode `27`
$('#registerExist').prop('disabled', true);
$('#edit').prop('disabled', true);
document.getElementById("enStudID").value = "";
document.getElementById("enInfoID").value = "";
document.getElementById("enCoffID").value = "";
document.getElementById("enYearID").value = "";
}
}
问题:
答案 0 :(得分:3)
您需要将密钥代码传递给settings
方法。
$(document).keyup(function(e) {
settings(e.keyCode);
});
function settings(code) {
在调试Javascript问题时使用浏览器的开发者控制台,它是一个非常宝贵的工具,可以很容易地解决这类问题。
答案 1 :(得分:1)
您在unbind回调中分配code
变量,而不是在bind回调中分配:)