Удалить слушатель с контекстом в ООП
Здравствуйте!
Подскажите пожалуйста, как правильно удалить слушатель в методе start в таком скрипте:
document.addEventListener('DOMContentLoaded', function() {
var app = {
$btnStart: document.getElementById('import-start'),
event() {
this.$btnStart.addEventListener('click', this.start.bind(this));
},
start() {
this.$btnStart.removeEventListener('click', this.start.bind(this));
},
init() {
this.event();
}
}
app.init();
});
Сейчас слушатель не удаляется и при клике на кнопку запускает скрипт заново, а мне нужно чтобы срабатывало только один раз :( . |
Что бы выполнялся один раз, можно
this.$btnStart.addEventListener('click', this.start.bind(this),{once:true}); Тогда и удалять не нужно будет. А что такое importStart? Ну или так
document.addEventListener('DOMContentLoaded', function() {
var app = {
$btnStart: document.getElementById('import-start'),
$clickHandler: null;
event() {
this.$clickHandler = this.start.bind(this)
this.$btnStart.addEventListener('click', this.$clickHandler);
},
start() {
this.$btnStart.removeEventListener('click', this.$clickHandler);
},
init() {
this.event();
}
}
app.init();
});
|
Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 04:34. |