52

要素のフォーカス イベントを検出したいのですが、ユーザーがタブ キーを押して開始した場合に限られます。例えば:

<input type="text" id="foo" />
<input type="text" id="detect" />

ユーザーがフォーカスされて#fooを押すTabと、イベントがフォーカスされると発生#detectします (または、フォーカス イベント内の条件が true になります)。逆に、ユーザーが単に#detectフィールドをクリックしてフォーカスした場合、イベントを発生させたくありません (または、フォーカス イベント呼び出し内の条件を false にします)。

#fooアプローチを他の要素から独立させたいので、キーダウンイベントを使用してタブキーが押されたかどうかを確認したくありません。

次のコードのコンソール出力に目を通しましたが、フォーカスの 2 つの方法に実際の違いは見られませんでした。

$('#detect').on('focus', function(e){
   console.log(e); 
});

(フィドル)

これは比較的簡単な方法で達成できますか?

4

5 に答える 5

0

このコードで特定の入力に対するフォーカスイベントを確認できます

$(window).on('keyup', function(event){
    if(event.keyCode == '9'){

      getFocused(event);
    }

})
var focused = 0;
function getFocused(e){
var ida =  $(':focus').eq(0).prop('id');
    if(ida=='detect' && focused==0){
        focused = 1;
        console.log(e);
    }
}

(フィドル)

于 2013-04-22T11:32:26.817 に答える