gpt4 book ai didi

javascript - 即使鼠标不移动,Webkit 和 Safari 也会触发 mousemove

转载 作者:数据小太阳 更新时间:2023-10-29 05:37:06 26 4
gpt4 key购买 nike

我读过有关 mousemove 事件在 Safari/Webkit 中被触发两次的问题,但我面临的问题是 mousemove 即使在鼠标移动时也会触发移动。也就是说:当鼠标光标位于加载/刷新页面时事件所附加的上下文上方时,它已经触发。因为我将它附加到 document(浏览器的整个视口(viewport)),它会立即在 Safari 中触发。我试图将它附加到 html 元素、body 和包装器 div。没有变化。

$(document).bind('mousemove', function() {
alert('Mouse moved!');
$(document).unbind('mousemove');
});

在其他浏览器中确实可以正常工作。有人看到我做错了什么吗?谢谢。

最佳答案

我知道这是一个肮脏的 hack,但至少是这样的:第二次触发 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/

就其值(value)而言,Safari 并不是唯一在页面加载时触发 mousemove 的浏览器——IE 也会这样做。无论如何,使用其他浏览器的人不会注意到“延迟”,因为您的鼠标几乎不可能只移动一个像素。

关于javascript - 即使鼠标不移动,Webkit 和 Safari 也会触发 mousemove,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2612907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com