我想设置一个名为 bindKeys
的函数,如下:
function bindKeys (flag) {
function keydown(e) {
if (e.keyCode == 27) {
keys.push('l');
}
}
function keyup(e) {
if (e.keyCode == 27) {
keys.pop();
}
}
if(flag) {
window.addEventListener('keydown', keydown);
window.addEventListener('keyup', keyup);
}else {
window.removeEventListener('keydown', keydown);
window.removeEventListener('keyup', keyup);
}
}
我是想通过flag
判断是绑定事件还是解除绑定。
可是我们都知道,每次调用这个函数时,keydown
函数和keyup
函数都会声名为新的函数,
导致解除绑定失效。
那有没有什么办法实现这一功能呢?难道必须要将keydown
函数和keyup
函数声名为全局函数吗?求解答!
犯罪嫌疑人X
相关分类