我正在尝试使用键盘标签导航表单。
$(document).on('keydown', function(e){
if (e.which != 9) {
}else{
if($(e.target).hasClass('pro')){
$('#np').hide();
}else{
$('#np').show();
}
}
});
这里奇怪的是e.target不会在光标闪烁的输入处触发,但在之前的输入中,我该如何解决?
答案 0 :(得分:2)
或者您可以使用keypress事件
$(document).on('keypress', function (e) {
if (e.which === 9) {
if ($(e.target).hasClass('pro')) {
$('#np').hide();
} else {
$('#np').show();
}
}
});
答案 1 :(得分:0)
将事件更改为keyup
而不是keydown
。 keydown
将在前一个输入字段处触发,并且在触发keyup
时,焦点已经可用于新输入字段。在下面的代码中,console.log
将打印新的输入元素。
$(document).on('keyup', function (e) {
console.log($(e.target))
if (e.which != 9) {
} else {
if ($(e.target).hasClass('pro')) {
$('#np').hide();
} else {
$('#np').show();
}
}
});