@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 );


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

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

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

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