使用纯javascript在mousedown上运行mousemove的最佳方法是什么?

Aly*_*ona 8 javascript events mousemove mousedown

我不希望mousemove事件发生任何不必要的循环.所以我对性能/最佳实践感兴趣,什么mousemove才是最好的运行方式mousedown == true呢?目前我正在使用:

var pressedMouse = false;

myObject.addEventListener("mousedown", function(e){

    mouseDownFunction(e); 
    pressedMouse = true;

    myObject.onmousemove = function(e) {
        if(pressedMouse == true){
            mouseMoveFunction(e);
        }
     }
});

myObject.addEventListener("mouseup", function(e){
    pressedMouse = false;
});
Run Code Online (Sandbox Code Playgroud)

mouseMoveFunction()因为pressedMouse变量而没有被调用.可onmousemove事件从如果触发防止mousedown不用呢?

Cod*_*rPi 12

您可以通过从侦听器中删除onMouseMove-Function来阻止它被调用:

myObject.addEventListener("mousedown", function(e){
    mouseDownFunction(e); 

    myObject.onmousemove = function(e) {
        mouseMoveFunction(e);
     }
});

myObject.addEventListener("mouseup", function(e){
    myObject.onmousemove = null
});
Run Code Online (Sandbox Code Playgroud)