@fristyr
Начинающий вэб разработчик

Вывод в консоль информации о эллементе по клику?

https://jsfiddle.net/fristyr/nqbevkLw/5/ Вот пример. Простите что ссылкой.

Есть вызов функции евентлиснера emojeClickHandler(evt). С ним проблемма точнее с console.log который в ней. Он выдает undefined хотя по идее должен выдавать в консоль трубу и зверушку которая появилась в трубе. Вопрос почему undifined я понимаю что что то не то или не так ввожу но не понимаю что. Если кто то может помочь буду благодарен. Заранее спасибо.
  • Вопрос задан
  • 284 просмотра
Решения вопроса 2
hzzzzl
@hzzzzl
так как сейчас, то в clickHandler'e this это элемент на который ты кликаешь ( console.log(this) попробуй )

пишем эту строчку так, тем самым привязываем хендлер к this то есть классу Game, где это всё происходит
currentPipe.addEventListener('click', this.emojeClickHandler.bind(this))

// или так

currentPipe.addEventListener('click', () => this.emojeClickHandler());
Ответ написан
Комментировать
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
https://jsfiddle.net/svnp9hbk/
т.е. что, вы вот тут вот теряете контекст this
currentPipe.addEventListener('click', this.emojeClickHandler);
там еще такая строка есть. Нужно либо обернуть ее в стрелочную функцию, либо юзать bind, либо она должна быть стрелочной функцией и.т.д.
и вот тут
console.log( 'pipe' , 'number= ' + this.randomPipe , ':' , 'emoji= ' , '' + this.randomAnimals)
вы методы randomPipe и randomAnimals забыли вызвать, нужно добавить скобки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы