Удалить слушатель с контекстом в ООП
Здравствуйте!
Подскажите пожалуйста, как правильно удалить слушатель в методе 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, время: 05:02. |