#javascript
Вопрос:
class ProfileCollaboration {
constructor() {
document.addEventListener('profileEvent', this.profileEvent)
}
profileEvent(event) {
let profileEvent = event.detail
if (profileEvent.name !== 'profileEditing') {
return
}
if (profileEvent.editing === true) {
console.log(this)
this.enableEditingMode()
} else {
this.disableEditingMode()
}
}
enableEditingMod() {
console.log('enabled');
}
disableEditingMode() {
console.log('disabled');
}
}
В журнале консоли говорится: this.enableditingmode не является функцией
Это правильно, потому что теперь это контекст списка добавлений.
Как я могу прослушивать события внутри класса js?
Комментарии:
1. Есть ли
profileEvent
какое-то событие?2. Эм, люди, вы понимаете, что можете запускать любые пользовательские события? 🙂
Ответ №1:
обратные вызовы прослушивателя событий по умолчанию привязаны к элементу.
Если вы хотите, чтобы это работало, вы должны прикрепить его вот так:
document.addEventListener('profileEvent', this.profileEvent.bind(this));
Комментарии:
1. Большое спасибо, я даже сейчас не знал о существовании привязки developer.mozilla.org/de/docs/Web/JavaScript/Reference/… это потрясающе!