2013-03-14 3 views

ответ

44

cloneNode() не копирует прослушиватели событий. На самом деле, нет никакого способа добыть слушателей событий с помощью DOM, как только они были связаны, так что ваши варианты:

  • Добавить все обработчики событий вручную на ваш клонированный узел
  • реорганизовать код чтобы все обработчики событий были привязаны к узлу, содержащему как оригинал, так и клон.
  • Используйте функцию обертки вокруг Node.addEventListener(), чтобы отслеживать слушателей, добавленных к каждому узлу. Так метод jQuery clone() способен копировать узел с помощью своих прослушивателей событий.
+4

Вы не ненавидите его, когда вредные привычки (встроенный javascript, такой как 'onclick') являются более удобными, чем подходящая альтернатива ванили? Вздох ... – JeromeJ

+0

Люди вообще используют плохие практики, потому что они более удобны, но не делают их хорошими. – GdC

Смежные вопросы