我有一些输入字段彼此叠加,我希望能够检查用户是否使用了tab键或单击以关注当前输入字段.检查.live('click', function() {很容易但我不知道如何检查他们是否使用tab来关注当前输入字段.
我确信有很多方法可以做到这一点,但一种方法是监听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中已弃用.