Получить сфокусированный элемент на смену фокуса - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь сохранить запись последнего элемента ввода текста, который был в фокусе. Мой код:

document.addEventListener('focus', function(e) {
    var obj = document.activeElement;
    if(obj instanceof HTMLInputElement && obj.type == 'text'){
        console.log('true');
    }
}, false);

Конечно, я сделал console.log(obj);, и он отлично срабатывает на элементе body, но не где-нибудь еще. Кроме того, кажется, что это срабатывает только один раз. Я не уверен, что я делаю не так или это правильный подход. Поэтому я надеюсь, что вы, ребята, сможете мне помочь.

Примечание. Я знаю, что вместо этого я могу легко решить проблему с событием щелчка, но любой, кто использует Tab для go через элементы формы, столкнется с проблемой. Так что это не решение.

1 Ответ

2 голосов
/ 19 февраля 2020

Вы можете связать с окном и разрешить пузыриться, и вы получите элемент с целью.

window.addEventListener('focus', function(e) {
    if (e.target.id) console.log(e.target.id)
}, true);
<input type="text" id="tb1">
<input type="button" id="btn1" value="button">
<a href="#foo" id="link1">test</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...