Я хочу определить событие фокусировки элемента, но только если оно было инициировано пользователем, нажимая клавишу табуляции. Например:
<input type="text" id="foo" />
<input type="text" id="detect" />
Если пользователь сфокусирован на #foo
и нажимает Tab, я хочу, чтобы событие срабатывало один раз, когда #detect
становится сфокусированным (или условным внутри события фокусировки, чтобы оно было истинным). И наоборот, если пользователь просто нажимает на поле #detect
, чтобы сфокусировать его, я не хочу, чтобы событие срабатывало (или я хочу, чтобы условие внутри вызова события фокусировки было ложным).
Я не хочу использовать событие keydown #foo
и проверять, была ли нажата клавиша табуляции, так как я хочу, чтобы этот подход не зависел от какого-либо другого элемента.
Я просмотрел вывод консоли из следующего кода, но не заметил никаких реальных различий между двумя методами фокусировки:
$('#detect').on('focus', function(e){
console.log(e);
});
(fiddle)
Можно ли сделать это относительно простым способом?