Firefox onmousemove与onmouseup事件失效的问题

在一个div上注册了onmousedown,onmousemove与onmouseup事件,想做一个MouseGuesture的特效。可是在Firefox中第一次测试事件都好使,然后接着进行第二次就失效了,鼠标上跟一个小矩形,好像是拖动的效果。
鼠标点到其他元素再回来就好了,是不是元素焦点的问题,也不知道怎么在ff中吧焦点移开。
例子在附件中,在显示的框中点击鼠标,横向拖动然后松开,接着再试一次问题就出来了,其他浏览器中都好用。

4个回答

问题是由选择文字动作引起的,ie8下也有此情况.
解决办法,禁止浏览器选择文字动作
ie下用document.body.onselectstart=function(){return false;}
ff下用-moz-user-select:-moz-none;

[code="html"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



*{ -moz-user-select:-moz-none; } window.onload = function(){ /* var msg = document.getElementById("msg"); var c = 0; MouseGuesture.instance({distance:100}).regist(document.getElementById("panel"),function(key){ //debugger; msg.innerHTML += key+","; } )*/ document.body.onselectstart=function(){return false;} var c = 0; var a = false; var msg = document.getElementById("msg"); var panel = document.getElementById("panel"); panel.onmousedown = function(){ a = true; } panel.onmousemove = function(){ /* if(a){ if(c%50 == 0){ msg.innerHTML += c+","; } c++; }*/ } panel.onmouseup = function(){ alert(1); a = false; } }


MouseTest :


[/code]

附件里没有传 这三个js文件

我看了你的代码没有问题啊。可能是你操作有问题吧。我解释下3个方法的意思。
//鼠标按下事件
panel.onmousedown = function(){
a = true;
}

//鼠标移动事件
panel.onmousemove = function(){
if(a){
if(c%50 == 0){
msg.innerHTML += c+",";
}

c++;

}
}
//鼠标按下后弹起事件

panel.onmouseup = function(){
a = false;
}
最后一个方法设置了 a = false;也就是说你要一直按着鼠标然后移动。就没有问题了

我用火狐测过了 没什么问题呀 第二次也可以触发

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐