tyoma_koder
@tyoma_koder

Как скопировать прослушиватели событий с одно элемента на другой без jquery?

Ни cloneNode ни innerHTML не работают
  • Вопрос задан
  • 227 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
cloneNode() сработает только если слушатели прописаны прямо в атрибутах элемента <a onclick="alert('Habr')">click me</a>

Слушатели, добавленные элементу через addEventListener() скопировать можно примерно никак.

Так что лучше держать обработчик отдельно, и навешивать их на элементы по мере надобности:
function myClickHandler(event) {
  // что-то сделать по поводу клика
}

element1.addEventListener('click', myClickHandler);
element2.addEventListener('click', myClickHandler);
element3.addEventListener('click', myClickHandler);

Или же слушать события выше по дереву, на общем родителе:
<div id="parent">
  <button>1</button>
  <button>2</button>
  <button>3</button>
</div>
и слушать клики на div#parent
Ответ написан
Комментировать
@zkrvndm
Софт для автоматизации
Никак, но можно сделать такой финт ушами... поставить слушатель на новый элемент и транслировать нужные события на старый элемент при помощи dispatchEvent. Минус: каждое событие придется обрабатывать индивидуально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы