我有一些代码可以在每次onmouseclick上工作,并且当我相应地设置它们时,我们会继续onmousemove。我正在寻找一种方法来结合两者(即像点击和拖动),我认为这将是一个简单的任务,但找不到任何简单的解释。我得到的最接近的是拖放教程。
触发onmouseclick事件时,是否必须调用onmousemove事件?或者有什么非常简单的我完全忽视了吗?
干杯
答案 0 :(得分:10)
您可能只想使用这样的标记:http://jsfiddle.net/n3MeH/。
var isMouseDown = false;
document.onmousedown = function() { isMouseDown = true };
document.onmouseup = function() { isMouseDown = false };
document.onmousemove = function() { if(isMouseDown) { /* do drag things */ } };
答案 1 :(得分:4)
您可以尝试这样的事情:
var div = document.getElementById('ex');
div.onmousedown = function(){
document.onmousemove = function(e){
div.innerText = '('+e.pageX +', '+e.pageY+')';
}
document.onmouseup = function(e){
div.innerText = 'Click Me!';
document.onmousemove = function(){};
}
}
它将文件mousemove和mouseup事件绑定在divs mousedown上。
答案 2 :(得分:0)
如果我理解正确,我认为您只想将onmouseclick
分成onmousedown
和onmouseup
(就像设置一个可拖动的bool,然后在鼠标上恢复它...但是既然你说你找到的最接近的是拖放信息,也许你的意思是其他什么?)
答案 3 :(得分:0)
非常简单......我希望:)
触发mousedown事件时,将全局“拖动”变量设置为true。然后,当触发mouseup时,将其设置为false。
答案 4 :(得分:0)
如果您不想使用全局变量进行拖动,可以使用event.buttons
来确定按下哪个鼠标按钮。
我在Chrome和Firefox中测试了此代码。
document.onmousemove = function(event) {
if(event.buttons == 1) { //dragged with left mouse button
//your code
}
if(event.buttons > 0) { //dragged with any mouse button
//your code
}
}