Использование элемента html и addEventListener
имеет несколько преимуществ по сравнению с использованием встроенных событий, таких как onclick
.
Однако сохранить элемент, включая его встроенное событие, очень просто, например, встраивая его в родительский элемент и сохраняя родительский элемент innerHTML
.
Можно ли сделать что-то подобное при использовании прослушивателей событий?
Изменить:
Я понял, что мой вопрос недостаточно объяснен. Итак, некоторые дополнения.
Под «хранением» я подразумеваю способ получить информацию, содержащую элемент и прослушиватель событий.
Аналог со встроенными событиями прост: просто встроить в родительский элемент и сохранить innerHTML
(строку) родителя где-нибудь, например в базе данных, а позже пересоздать элемент, загрузив строку и применив ее к innerHTML какого-то элемента.
Но как сделать аналог с элементами при использовании слушателей событий? Нельзя просто использовать innerHTML
, так как тогда события не сохраняются.
Надеюсь, это немного прояснит мой вопрос.
Изменить 2
С помощью комментариев я предпринял несколько неудачных попыток.
Можно получить информацию о element
, используя createDocumentFragment()
или element.cloneNode(true)
.
Однако первый способ не работает для внешнего хранилища, так как, если я правильно понял, будет содержать только указатель. Вот пример:
https://jsfiddle.net/hcpfv5Lu/
Второй способ тоже не работает. Я не совсем уверен, почему, но если я JSON.stringify
клон "исчезает". Вот пример:
innerHTML
(строку) одного элемента и повторно применить ее позже к другому элементу, чтобы восстановить прежний элемент. - person Daniel   schedule 05.01.2017Document.createElement()
doc и прикреплять событие прослушиватели созданного объекта. Затем вы можете вставить этот объект в родителя с помощьюparent.appendChild(obj)
doc а>. Затем вы можете хранить объекты в JavaScript. - person E. Sundin   schedule 05.01.2017