即使鼠标不移动,Webkit和Safari也会移动鼠标

时间:2010-04-10 09:44:23

标签: javascript jquery javascript-events mousemove

我已经阅读了在Safari / Webkit中两次触发mousemove事件的问题,但我遇到的问题是即使鼠标不是<{1}}也会触发/ strong>感动。也就是说:当鼠标光标位于加载/刷新页面时附加事件的上下文之上时,它已经触发。因为我将它附加到mousemove(浏览器的整个视口),它会立即在Safari中激活。我已尝试将其附加到document元素,html和包装body。没有变化。

div

在其他浏览器中是否可行。有谁看到我做错了什么?感谢。

1 个答案:

答案 0 :(得分:1)

我知道这是一个肮脏的黑客攻击,但至少这是:只需在第二次mousemove被触发时执行回调函数。

var $document = $(document), i = 0;
$document.bind('mousemove', function() {
 if (++i > 1) {
  alert('Mouse moved!');
  $document.unbind('mousemove');
 };
});

演示:http://fiddle.jshell.net/Yz5Bd/show/light/

对于它的价值,Safari并不是唯一一个在页面加载时触发mousemove的浏览器 - IE也是如此。无论如何,使用其他浏览器的人不会注意到“延迟”,因为几乎不可能只移动鼠标一个像素。