.live listner检查用户是否按Tab键以关注当前输入字段

use*_*764 1 javascript jquery

我有一些输入字段彼此叠加,我希望能够检查用户是否使用了tab键或单击以关注当前输入字段.检查.live('click', function() {很容易但我不知道如何检查他们是否使用tab来关注当前输入字段.

Dav*_*ing 6

我确信有很多方法可以做到这一点,但一种方法是监听keyup事件,然后找出关注的元素,如果有的话:

$(document).on('keyup', function(e) {
    if(e.keyCode == 9) {
        var input = $(this).find('input:focus');
        // input is the element that has focus after the tab key was pressed
    }
});
Run Code Online (Sandbox Code Playgroud)

这可能不能保证tab密钥用于将焦点带入元素,但它可能足以满足您的需求.

如果要检查用户在输入字段获得焦点之前使用的事件类型,请尝试:

$(document).on('keyup', function(e) {
    if(e.keyCode == 9) {
        findFocus(e);
    }
}).on('click', 'input', findFocus);

function findFocus(e) {
    var input = $(document).find('input:focus');
    if ( input.length ) {
       alert('Input was focused using '+e.type);
    }
}
Run Code Online (Sandbox Code Playgroud)

另请注意,我使用的是.on()事件而不是.live(),因为live在1.7中已弃用.