Обработчик для созданного элемента дома
Всем бобра. Не могу разобраться в такой ситуации:
К каждому элементу списка добавляю элемент - кнопку spanEl.insertAdjacentHTML("beforeEnd", `<button class='menuList' onclick="clickButMenu()"><p>ttt</p></button>`) создал функцию clickButMenu clickButMenu = function () { alert(this.innerHTML) } Но при клике на кнопку ее содержимое не определено, в отличии если бы я написал так: spanEl.insertAdjacentHTML("beforeEnd", `<button class='menuList' onclick="alert(this.innerHTML)"><p>ttt</p></button>`) Почему не работает первый вариант и как правильно реализовать функцию ? |
Повесить онклик на родительский элемент, использовать делегирование
|
Sergii Prudkii,
потому что this в функции ссылается на window, чтобы работало его нужно передать аргументом spanEl.insertAdjacentHTML("beforeEnd", `<button class='menuList' onclick="clickButMenu(this)"><p>ttt</p></button>`) var clickButMenu = function (th) { alert(th.innerHTML) } |
Огромнейшее тебе спасибо )
|
Часовой пояс GMT +3, время: 00:47. |