2017-10-23 3 views
0

キーボードのタブを使用してフォームをナビゲートしようとしています。jqueryイベントターゲットが新しいターゲットにフォーカスしていない

$(document).on('keydown', function(e){ 
     if (e.which != 9) { 
     }else{ 
      if($(e.target).hasClass('pro')){ 
       $('#np').hide(); 
      }else{ 
       $('#np').show(); 
      } 
     } 
    }); 

ここで奇妙なことは、どのように私はこの問題を解決することができ、e.targetは、カーソルが点滅している入力ではなく、前の入力時にトリガされていないのですか?

答えて

0

​​ではなく、keyupにイベントを変更してください。​​が前の入力フィールドでトリガーし、時刻が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(); 
     } 
    } 
}); 
2

それとも

$(document).on('keypress', function (e) { 
    if (e.which === 9) { 
     if ($(e.target).hasClass('pro')) { 
      $('#np').hide(); 
     } else { 
      $('#np').show(); 
     } 
    } 
}); 
keypressイベントを使用することができます
関連する問題