2015-06-25 2 views
0

Так что я недавно изучал JavaScript, и я не могу понять, почему следующий код не работает. Я использовал событие нажатия клавиши «enter» (код нажатия клавиши 13, если кто-то любопытно), и он отлично работал. Однако я не могу заставить код 9 нажатия (вкладка) работать.Событие нажатия клавиш не работает (родной JavaScript)

Функция 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

Попробуйте использовать событие keydown вместо события нажатия клавиши. Keydown пожары сначала. Также запретите действие по умолчанию, если вы хотите остаться внутри входа. (если вы не хотите оставаться внутри входа, просто удалите эту строку)

inputs[i].addEventListener("keydown", listItemTab); 

// not working yet 
function listItemTab(event){  
    event.preventDefault(); 
    if(event.which === 9){ 
     console.log("tab pressed");  
    } 
} 
Смежные вопросы