javascript 终止 onkeydown 事件监听器
javascript terminate onkeydown eventlistener
我有等待特定用户响应(按键)的功能。
async function alert(){
let alert_response = await testing_501_alert_response()
}
async function testing_501_alert_response() {
key_code = [99, 67, 113, 81, 114, 82]
return new Promise((resolve) => {
document.addEventListener('keydown', onKeyHandler);
function onKeyHandler(e) {
if (key_code.includes(e.keyCode)) {
document.removeEventListener('keydown', onKeyHandler);
resolve(e.keyCode);
}
}
});
}
我希望能够中止这个“等待”,即在表单上有一个带有 onlclick 事件的按钮将终止执行。
下面是一个在点击按钮时实现 removeEventListener 的例子:
function trigger() {
key_code = [99, 67, 113, 81, 114, 82] // c
document.addEventListener('keydown', onKeyHandler);
}
function cancel() {
document.removeEventListener('keydown', onKeyHandler);
}
function onKeyHandler(e) {
console.log(e.keyCode)
if (key_code.includes(e.keyCode)) {
document.removeEventListener('keydown', onKeyHandler);
// do whatever you want with this handler here
}
}
body { margin: 0; }
.as-console-wrapper { min-height: 85%; top: auto; }
<button onclick="trigger()">trigger</button>
<button onclick="cancel()">cancel</button>
我有等待特定用户响应(按键)的功能。
async function alert(){
let alert_response = await testing_501_alert_response()
}
async function testing_501_alert_response() {
key_code = [99, 67, 113, 81, 114, 82]
return new Promise((resolve) => {
document.addEventListener('keydown', onKeyHandler);
function onKeyHandler(e) {
if (key_code.includes(e.keyCode)) {
document.removeEventListener('keydown', onKeyHandler);
resolve(e.keyCode);
}
}
});
}
我希望能够中止这个“等待”,即在表单上有一个带有 onlclick 事件的按钮将终止执行。
下面是一个在点击按钮时实现 removeEventListener 的例子:
function trigger() {
key_code = [99, 67, 113, 81, 114, 82] // c
document.addEventListener('keydown', onKeyHandler);
}
function cancel() {
document.removeEventListener('keydown', onKeyHandler);
}
function onKeyHandler(e) {
console.log(e.keyCode)
if (key_code.includes(e.keyCode)) {
document.removeEventListener('keydown', onKeyHandler);
// do whatever you want with this handler here
}
}
body { margin: 0; }
.as-console-wrapper { min-height: 85%; top: auto; }
<button onclick="trigger()">trigger</button>
<button onclick="cancel()">cancel</button>