在 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 事件处理程序工作正常,但是在按下时我希望能够向右或向左移动,并且显然替换down
与 left
或 right
。
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/
此外,您并没有在释放按钮后删除事件。我认为这是有意的(如果不是,也不难解决)。
如何将 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 事件处理程序工作正常,但是在按下时我希望能够向右或向左移动,并且显然替换down
与 left
或 right
。
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
后更新 htmlvar 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/
此外,您并没有在释放按钮后删除事件。我认为这是有意的(如果不是,也不难解决)。