Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2018, 00:27
Новичок на форуме
Отправить личное сообщение для Sergii Prudkii Посмотреть профиль Найти все сообщения от Sergii Prudkii
 
Регистрация: 15.11.2018
Сообщений: 5

Обработчик для созданного элемента дома
Всем бобра. Не могу разобраться в такой ситуации:
К каждому элементу списка добавляю элемент - кнопку
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>`)

Почему не работает первый вариант и как правильно реализовать функцию ?
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2018, 02:45
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Повесить онклик на родительский элемент, использовать делегирование
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2018, 04:26
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Sergii Prudkii,
потому что this в функции ссылается на window, чтобы работало его нужно передать аргументом
spanEl.insertAdjacentHTML("beforeEnd", `<button class='menuList' onclick="clickButMenu(this)"><p>ttt</p></button>`)
var clickButMenu = function (th) {
      alert(th.innerHTML)
    }
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2018, 18:56
Новичок на форуме
Отправить личное сообщение для Sergii Prudkii Посмотреть профиль Найти все сообщения от Sergii Prudkii
 
Регистрация: 15.11.2018
Сообщений: 5

Огромнейшее тебе спасибо )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исполнять скрипт только для текущего элемента snovapavel jQuery 19 10.03.2015 13:22
Each срабатывает только для одного элемента Александр222 Общие вопросы Javascript 1 04.08.2014 14:12
Обработчик события при изменении элемента jquery ОлегА AJAX и COMET 6 28.05.2013 14:06
Обработчик события click элемента, содержащего iframe meryfelow Events/DOM/Window 0 07.03.2012 18:58
эмуляция события click для элемента select Polo Events/DOM/Window 4 16.12.2009 13:29