在Javascript或JQuery上,在运行添加/删除mousemove事件时

在Javascript或JQuery上,在运行添加/删除mousemove事件时,javascript,jquery,Javascript,Jquery,我需要第一次点击屏幕时的位置。我做到了。但我需要更多。 mousedown事件运行时,mousemove事件也将运行。当mouseup事件运行时,mousemove事件将不起作用 $("#canvas").mousedown(function (e) { console.log("First: down position: " + e.pageX + "---" + e.pageY); canvasMove("canvas"); });

我需要第一次点击屏幕时的位置。我做到了。但我需要更多。 mousedown事件运行时,mousemove事件也将运行。当mouseup事件运行时,mousemove事件将不起作用

    $("#canvas").mousedown(function (e) {
        console.log("First: down position: " + e.pageX + "---" + e.pageY);
        canvasMove("canvas");
    });

    $("#canvas").mouseup(function (e) {
        console.log("Last: up position: " + e.pageX + "---" + e.pageY);
    });
    function canvasMove(id) {
        $(id).mousemove(function (e) {
            console.log("move position: " + e.pageX + "---" + e.pageY);
        });
    }
那么如何在mouseup事件中删除mousemove事件呢

$("#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.log("move position: " + e.pageX + "---" + e.pageY);
    });
}

有关更多信息,请访问

bind和unbind已被弃用-请改用on和off