调整字号

IE8 下的双击问题

今天在 IE8 下测试时遇到了一个很疑惑的问题,具体表现为:快速点击时,click 事件触发的频率总是跟不上鼠标,就跟使用了 throttle 函数一样。研究了一下,发现又是 bug 导致。

正常情况下, 如果双击鼠标,将会按顺序触发一系列事件:

mousedown > mouseup > click > mousedown > mouseup > click > dbclick

在 IE8 下则变成了这样

mousedown > mouseup > click > mouseup > dbclick

可以看到,IE 吞掉了两个事件 mousedownclick ,也就是说第二次点击只触发了一个 mouseup。在 IE6-7 中也是这样。这就会导致,如果你在某个元素上双击,click 只能触发一次,如果你快速地点击,click 事件触发的次数总是只有实际次数的一半。

所以解决方法就是,把 click 换做绑定 mouseup 事件。可以在下面 demo 中测试。

还没有评论,沙发空缺中……
flight