Задать вопрос
@EVOSandru6

Как в javascript приостановить обработчик события click при обработке события mousemove?

Добрый день,

Мне необходимо по разному обрабатывать простой клик по канвасу и клик-перемещение-отпуск мыши.

Пробовал таким образом отменить обработчик на click - при mousemove, но mouseClick все равно отрабатывает помимо mouseDown-mouseMove-mouseUp в момент mouseUp.

canvas.addEventListener('mousemove',    mouseMove,   false );
    canvas.addEventListener('mousemove',    function(){
        canvas.onclick = null;
        canvas.click = null;
        console.log('....');
    },      false );
    canvas.addEventListener('mousedown',    mouseDown,   false );
    canvas.addEventListener('mouseup',      mouseUp,     false );
    canvas.addEventListener('click',        mouseClick,  false );


Подскажите пожалуйста, кто сталкивался?
  • Вопрос задан
  • 2184 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Нужно использовать переменные-флаги, находящиеся вне обработчиков, чтобы у них был доступ к этим переменным. При запуске обработчика смотрите флаги и прерывайте его работу, если запущен какой-то другой процесс.
Опишите просто словами свою логику и в зависимости от этого описания реализуйте нужные флаги.

Обработчики, установленные через addEventListener нужно снимать через removeEventListener, а не через canvas.onclick = null;. Но в вашем случае это ничем не поможет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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