所以我最近一直在学习JavaScript,我似乎无法弄清楚为什么以下代码不起作用。我在“输入”上使用了按键事件(按键代码13,以防任何人好奇)并且它工作得很好。但是我无法使用按键代码9(标签)来工作。
函数listItemTab
本身似乎有效,但它永远不会进入我的if语句(我的console.log永远不会执行)。
这里是the codepen I've been working,所以你可以看到我的html上下文中的所有代码。
var myList = document.getElementById("my-list");
var listItems = myList.querySelectorAll("li");
var inputs = myList.querySelectorAll("input");
for(var i = 0; i < listItems.length; i++){
inputs[i].addEventListener("keypress", listItemTab);
}
function listItemTab(event){
if(event.which === 9){
console.log("tab pressed");
}
}
提前感谢您的帮助! :)
答案 0 :(得分:0)
尝试使用keydown事件而不是keypress事件。 Keydown首先开火。如果您想留在输入内,也可以阻止默认操作。 (如果你不想留在输入中,只需删除该行)
inputs[i].addEventListener("keydown", listItemTab);
// not working yet
function listItemTab(event){
event.preventDefault();
if(event.which === 9){
console.log("tab pressed");
}
}