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

2024-12-03 01:29:05
推荐回答(5个)
回答1:

在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事件总是先触发执行的冲突。

楼主能不能告诉双击事件要做的操作是什么?

回答2:

  您好!很高兴为您答疑!

  解决方法:

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

例子:
click