Элемент, ориентированный на js

#javascript #javascript-events

#javascript #dom-события

Вопрос:

Мне нужно сделать addEventListener для каждого сфокусированного элемента, в данном случае целевым элементом является textarea . Я знаю, что могу сделать, document.getElementsByTagName('textarea') и он получит все textarea , что есть на странице «сейчас». но мне нужно сделать это для всех textarea , включая то, что будет добавлено на страницу.


Я пробовал этот код:

 var currentTextarea;
document.addEventListener('click', function(){
    var clickedElement = (window.event) ? window.event.srcElement : e.target;
    if(clickedElement.tagName.toLowerCase() === "textarea"){
        currentTextarea = clickedElement;
        //some code here
    }
} , false);
  

но есть одна проблема, это работает, когда элемент фокусируется щелчком мыши. Он не работает, когда какая-либо другая функция фокусирует любую текстовую область. слишком много функций, на которых сосредоточено внимание textarea


Есть ли какой-либо другой способ сделать это?

Комментарии:

1. Используйте focusin событие.

Ответ №1:

Добавьте прослушиватель для focusin события. Он выполняется независимо от того, какое внимание уделяется элементу.