我尝试创建一个侦听键盘输入ZZPX
并聚焦文本输入的事件侦听器 - 以便在扫描条形码时例如ZZPX12345将12345部分输入文本输入并提交表格。
一切正常,除非一旦输入了ZZPX,脚本就会保持循环,所以如果按下任何其他键,它会自动将文本输入聚焦为任意键。我想我需要尝试重置这个听众,但我不确定如何和我试过看其他方法但无济于事。
if ( window.addEventListener ) {
var kkeys = [], konami = "90,90,80,88";
window.addEventListener("keydown", function(e){
kkeys.push( e.keyCode );
if ( kkeys.toString().indexOf( konami ) >= 0 ) {
// run code here
$("#barcodeInput").focus();
}
}, true);
}
答案 0 :(得分:0)
您需要使用removeEventListener
。您还需要将事件处理程序包装到单独的函数中以便于阅读。
if ( window.addEventListener ) {
var kkeys = [], konami = "90,90,80,88";
window.addEventListener("keydown", window_keyDown, true);
}
var kkeys = [], konami = "90,90,80,88";
function window_keyDown(evt) {
kkeys.push( evt.keyCode );
if ( kkeys.toString().indexOf( konami ) >= 0 ) {
// run code here
$("#barcodeInput").focus();
window.removeEventListener("keydown", window_keyDown);
}
}
如果由于某种原因您不想分离该功能,可以使用以下内容:
window.removeEventListener("keydown");
而不是
window.removeEventListener("keydown", window_keyDown);