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

时间:2019-05-15 09:15:36

标签: javascript jquery

我第一次单击屏幕时需要位置。但是我需要更多。 当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事件?

2 个答案:

答案 0 :(得分:2)

$("#canvas").off('mousemove')

如果您还有其他东西要听鼠标,则可以为处理程序附加一个命名空间事件,例如

$("#canvas").on('mousemove.loggingPosition')

然后将其删除

$("#canvas").off('mousemove.loggingPosition')

答案 1 :(得分:1)

您可以使用onoff方法执行以下操作:

function canvasMove(id) {
    $(id).on("mouseup",function (e) {
        $( this ).off("mousemove");
        console.log("move position: " + e.pageX + "---" + e.pageY);
    });
}

有关更多信息,请访问here

相关问题