copal
@copal
𝄞 ...оооо baby

Как быть с mouseevents и currentTarget в es6?

Есть класс, который получает DOM элементы, которые нужно подписать под мышиные события.
Элементы, это родители, которые имеют множество детей, которые реагируют на mousedown, что
не дает использовать arrow function. И получается, что создай я метод класса для того чтобы из него
(из хенделера) обратится к самому классу, я теряю currenttarget. А если я делаю... а просто функцию даже если и сделаю, что очень дико для классов, то теряется контекст this.

Что делать? Возможно есть способ отключить реакцию детей на мышь?

Вот пример https://jsfiddle.net/ruxqkd5s/5/ он демонстрирует, что при нажатии на ребенка я не могу получить тот объект, который подписывал на событие. Это можно сделать только если хандлер не метод. Но в таком случаи я теряю контекст класса.
И сразу добавлю что этот пример не работает в песочнице, так как es7 не поддерживает.

Я хоть и придумал выход, но он через создание карты хендлеров и их currentTarget.
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 1
@sanex3339
Если я все правильно понял, вот как я делаю на примере жкверьки.

$('.some-class').on('click', (event) => {
    $.proxy(this.clickEventHandler(event), this);
});


Вот пример
https://jsfiddle.net/pnwd2r8r/3/
Ответ написан
Ваш ответ на вопрос

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

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