火狐下同时有onmousedown ondblclick事件,双击无效

功能是实现鼠标拖拉,在ie下没有问题,但在火狐下同时有onmousedownondblclick事件,双击无效.div里设置了onmousedown事件后ondblcli... 功能是实现鼠标拖拉,在ie下没有问题,但在火狐下同时有onmousedown ondblclick事件,双击无效.div里设置了onmousedown事件后ondblclick就无法执行了,去掉onmousedown事件后双击则出来预想的效果.
这个问题困扰了很久,尝试过各种办法都不行,请问有没有设置事件优先级的方法?我要的效果是onmousedown拖动等级为最小的,双击打开窗口事件等级为最高(即双击的时候总能起效果)
我要的是在js里面设置,这个跟浏览器本身没有关系的,遨游的内核是ie,ie下没问题遨游下也没问题.
我已经判断不同浏览器执行不同代码了,关键是在火狐下运行的代码不行阿.网上拖拉的代码是很多但都解决不了我的问题.
microAllen分析得很不错,但是ondragstart、ondrag和ondragend 只有在ie下才可以阿,火狐下没有这些事件的.
我现在的移动是在onmousedown时创建一个虚框,onmousemove移动虚框,onmouseup移动div并清除事件.问题就是无论如何都触发不了双击事件.
全局变量还是解决不了问题,因为一直获不到双击事件,不能在获得双击事件时取消onmousedown事件.按照逻辑双击事件应该是在最后触发,但我的问题是双击事件一直都没有被触发过!
展开
 我来答
microAllen
推荐于2018-03-21 · TA获得超过553个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:231万
展开全部
在IE中,当鼠标单击一下分别触发事件如下:
mousedown
mouseup
click
如果双击下一共触发如下事件:
mousedown
mouseup
click
mouseup
dblclick

但是在firefox中,单击所触发的事件和IE是一样的
但是双击时触发的事件有所不同:firefox中双击实际上触发事件如下:
mousedown
mouseup
click
mousedown
mouseup
click
dblclick
两者比较下就可以看出浏览器不同所造成的差别。然后根据差别触发相应事件所做的操作进行一定的修改。

而且鼠标拖动时触发的时候不是onmousedown而是ondragstart、ondrag和ondragend 你可以把onmousedown所执行的方法放在ondragstart执行,这样的话就不会出现onmousedown和ondblclick之间的冲突,你双击而不拖动的话就不会去触发拖动相对应的ondragstart事件

目前只有windows上的IE支持上面所说的系统拖动,mozilla在基于XUL的页面上支持系统拖动,关于楼主要说的设置事件触发的优先级,本人才疏学浅没听到过,不过如果能够准确的控制onmousedown事件的触发和ondblclick事件的触发时刻,可以在js中定义个全局的布尔变量,然后通过首先对该布尔变量的判断来决定当你想要触发ondblclick事件的时候控制onmousedown事件相对应的方法不被执行。这样的话不知道能不能解决在dblclick事件触发前mousedown事件总是先触发执行的冲突。

楼主能不能告诉双击事件要做的操作是什么?
火狐
2014-03-05 · Firefox,最快最安全的上网体验
火狐
Mozilla Firefox火狐浏览器,是一款开放安全的开源浏览器,全球拥有5亿用户。
向TA提问
展开全部
  您好!很高兴为您答疑!

  解决方法:

  思路: 在 onmousedown 用一个 setTimeout 延迟处理, 比如说在100毫秒里没有第二次点击则执行 onmousedown 否则执 ondblclick.

例子:
<a href="#" onclick="window.setTimeout('clickFun();',400)" ondblclick="dblclickFun();" >click</a>
<script>
var isDblClick=false;

function clickFun()
{
if(!isDblClick){
alert("click");
}else{
isDblClick=false;
}
}

function dblclickFun()
{
isDblClick=true;
alert("ondblclick");

}
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌微月2S
2008-07-01 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2887万
展开全部
两外可以判断浏览器的类型,不同的浏览器执行不同的javascript代码! 基本上搜索一下,有现成的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liveimain001
2008-07-01 · 超过37用户采纳过TA的回答
知道答主
回答量:158
采纳率:0%
帮助的人:0
展开全部
装个遨游试试 如果遨游行,证明是火狐插件问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SoldierBandit
2008-07-01 · TA获得超过191个赞
知道小有建树答主
回答量:605
采纳率:0%
帮助的人:285万
展开全部
应该是可以在浏览器里直接设置优先级的吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式