在 javascript 中使用 mousemove 事件附加 mousedown?

Attaching mousedown with mousemove event in javascript?

如何将 mousedown 事件附加到 mousemove 事件,这在示例中有更好的解释:

      var mousemovemethod = function (e) {
            var oldx = 0;
            var direction = "down";
            x = this;
            x.addEventListener("mousemove", function(e){
                if (e.pageX < oldx) {
                    direction = "left"
                } else if (e.pageX > oldx) {
                    direction = "right"
                }
            });

            document.body.innerHTML = direction;

            oldx = e.pageX;

    }

    document.addEventListener('mousedown', mousemovemethod);

所以这段代码的作用是当我点击它时它显示 down,所以 mousedown 事件处理程序工作正常,但是在按下时我希望能够向右或向左移动,并且显然替换downleftright

jsFiddle 在这里: http://jsfiddle.net/ft8pdup6/

我已经设法解决了这个问题,我想我应该 post 在这里 :

var oldX = 0;
var move = function(e){
    if(e.pageX < oldX){
        document.body.innerHTML = "left";
    }
    if(e.pageX > oldX){
       document.body.innerHTML = "right";
    }
     oldx = e.pageX;
}
var start = function(event){
    document.body.innerHTML = "down";
    document.addEventListener("mousemove", move, true);
};
document.addEventListener("mousedown", start, false);

你的代码很好,除了你忘记在设置 left 或 right

后更新 html
var direction = "",
oldx = 0,
mousemovemethod = function (e) {
    var oldx = 0;
    var direction = "down";
    x = this;
    x.addEventListener("mousemove", function(e){
        if (e.pageX < oldx) {
            direction = "left"
        } else if (e.pageX > oldx) {
            direction = "right"
        }
        //You forgot to to this
        document.body.innerHTML = direction;
    });

    document.body.innerHTML = direction;

    oldx = e.pageX;

}

Fiddle: http://jsfiddle.net/1qfg8xtw/

此外,您并没有在释放按钮后删除事件。我认为这是有意的(如果不是,也不难解决)。