Я создаю клон Twitter с некоторыми добавленными функциями для своего портфолио. Я использую тег шаблона веб-компонента для создания шаблона твита, а затем использую importNode для его рендеринга в DOM при нажатии кнопки публикации твита. Это работает нормально.
Я добавил кнопку редактирования, которая должна запускать функцию при нажатии:
tweetTemplate.content.querySelector('#button').onclick = () =>{
createTweetContainer.style.display = "block";
console.log("edit button clicked");
}
Однако это не работает. Контейнер создания твита должен быть виден при нажатии кнопки. Я также хочу, чтобы кнопка была уникальной для каждого импортированного шаблона, поскольку пользователь должен иметь возможность редактировать этот конкретный c твит, даже если это один и тот же шаблон.
Я прочитал несколько руководств по веб-компонентам, настраиваемым элементы, тень DOM и т. д. c. Но я застрял в том, как собрать ie все это вместе для этой конкретной c задачи.
Любая помощь по следующим шагам приветствуется. Спасибо.
JS FIDDLE: https://jsfiddle.net/manoj1234/zoL5s10g/12/
Обновление:
Я добавил слушателя событий к импортированному узлу, а не к шаблону как таковому:
tweetInstance.querySelectorAll('button')[0].onclick = () =>{
createTweetContainer.style.display = "block";
console.log("edit button clicked");
}
Но теперь я получаю эту ошибку: Uncaught TypeError: невозможно установить свойство onclick для undefined в HTMLButtonElement.postTweetButton.onclick (script . js: 59)