Почему в constructor(){} класса выполняется обработчик, навешанный через jQuery?

constructor () {
    this.$close = $('.modal__close');

    this.$close.on('click',  this.close());

В методе close у меня прописан console.info('closed') и он выводится при загрузке страницы. Сам клик в дальнейшем не срабатывает.
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@Mr_Epic
Web программист
this.$close.on('click', this.close());
Замените на:
this.$close.on('click', this.close);
Нужно передавать функцию, а вы передаёте результат функции.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@YNile
JS Developer
this.$close.on('click', this.close.bind(this));

или на jquery
this.$close.on('click', $.proxy(this.close, this));


или на es6
this.$close.on('click', (e) => this.close(e));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы