我有一个按钮,单击它需要禁用keyCodes 49,50,51,52,53,54
。
当我单击keyCode 27
时,它需要为所有keyCode返回true
。
button_size_1.onclick = function() {
$("html").bind("keydown", function(e) {
if (
e.keyCode == 49 ||
e.keyCode == 50 ||
e.keyCode == 51 ||
e.keyCode == 52 ||
e.keyCode == 53 ||
e.keyCode == 54
) {
return false;
console.log("false");
} else if (e.keyCode == 27) {
return true;
console.log("true");
}
});
};
答案 0 :(得分:2)
您要在返回后编写console.log()
,因为它将不读取任何后续代码,因此将永远无法工作。您需要先将console.log()
放在首位:
if (e.keyCode == 49 || e.keyCode == 50 || e.keyCode == 51 || e.keyCode == 52 || e.keyCode == 53 || e.keyCode == 54) {
console.log("false");
return false;
} else if (e.keyCode == 27) {
console.log("true");
return true;
}
因此它确实返回true,只是在控制台cuz中没有显示任何有关此简单问题的内容:-)
答案 1 :(得分:0)
您将需要一个变量,该变量指示是否已按下keyCode 27。看下面的例子。每次单击按钮都会重置keyCode27Pressed
值。按下具有keyCode 27的键后,它将更改为true,之后,对于所有已定义的键,它将返回true。
button_size_1.onclick = function() {
let keyCode27Pressed = false;
$("html").bind("keydown", function(e) {
if (
e.keyCode == 49 ||
e.keyCode == 50 ||
e.keyCode == 51 ||
e.keyCode == 52 ||
e.keyCode == 53 ||
e.keyCode == 54
) {
if (!keyCode27Pressed) {
console.log("false");
return false;
} else {
console.log("true");
return true;
}
} else if (e.keyCode == 27) {
keyCode27Pressed = true;
console.log("true");
return true;
}
});
};