Мне нужно местоположение, когда я впервые нажимаю на экран. Я сделал это. Но мне нужно больше. Событие mousemove также запускается при запуске события mousedown. Событие mousemove не будет работать при запуске события mouseup
$("#canvas").mousedown(function (e) {
console.info("First: down position: " + e.pageX + "---" + e.pageY);
canvasMove("canvas");
});
$("#canvas").mouseup(function (e) {
console.info("Last: up position: " + e.pageX + "---" + e.pageY);
});
function canvasMove(id) {
$(id).mousemove(function (e) {
console.info("move position: " + e.pageX + "---" + e.pageY);
});
}
Итак, как мне удалить событие mousemove в событии mouseup?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


$("#canvas").off('mousemove')
Если у вас есть что-то еще, прослушивающее мышь, вы можете прикрепить свой обработчик с событием в пространстве имен, например
$("#canvas").on('mousemove.loggingPosition')
а затем удалить его
$("#canvas").off('mousemove.loggingPosition')
Вы можете сделать что-то подобное, используя методы on и off:
function canvasMove(id) {
$(id).on("mouseup",function (e) {
$( this ).off("mousemove");
console.info("move position: " + e.pageX + "---" + e.pageY);
});
}
Для получения дополнительной информации посетите здесь
bind и unbind устарели - вместо этого используйте on и off