当绑定到多个元素时,Firefox 中的缓慢鼠标移动事件
Sluggish Mousemove event in firefox when bound to multiple elements
我目前正在开发一个插件,当父元素被"输入"时,它会在子元素上使用mousemove事件
当有一个实例时,它工作正常,但如果用户有很多实例怎么办?
该插件将用于包含图像
的div,并且光标后面有一个div。因此,当您将鼠标悬停在图像上时,div 会跟随光标。
我认为这可能是因为鼠标移动事件绑定到太多元素,所以在"mouseleave"上我取消绑定了鼠标移动,但问题仍然存在。
在野生动物园和铬中似乎很好。
elem
.on('mouseenter', function(){
$(this).on('mousemove', function(e){
setPosition();
});
})
.on('mouseleave', function(){
$(this).unbind('mousemove');
});
setPosition() 函数只是设置div 在光标上的位置,使其居中。
只有当插件在多个元素上运行时它才会迟钝??
请帮忙,谢谢。
您应该在包含元素上处理事件,而不是将事件处理程序附加到每个单独的元素。
例如:
$('#parentDiv').on('mousemove', '#someDiv1, #someDiv2', function(event)
{
// event.target is the div that triggered the mousemove event
setPosition(event.target);
});
这意味着您将在公共父级上创建 1 个事件处理程序,而不是每个元素创建 1 个事件处理程序(谷歌"jQuery 事件传播"以获取更多详细信息)。虽然这确实使 setPosition() 方法有点复杂,但它应该会提高性能,具体取决于您如何实现它。
如果使用on
绑定,则应使用off
取消绑定而不是unbind
。这可能是你的问题。
相关文章:
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 对iPad上的点击事件反应缓慢
- 当鼠标悬停在文本中的单词上时显示警报
- JsFiddle上的鼠标事件不起作用
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- Ajax请求文档就绪会导致jquery加载缓慢
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 鼠标悬停事件影响列表中所有行中的按钮,而不仅仅是特定按钮
- 将鼠标旋转限制为特定的度数
- 跟踪jqplot垂直折线图的鼠标位置
- node-webkit-从父窗口捕获iframe鼠标事件
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- Xpath运行缓慢的查询
- Javascript-在视频中跟踪鼠标位置
- JQuery UI可拖动潜水与滚动棒到鼠标
- 如何在jquery中找到鼠标滚轮/触摸移动事件的走向
- 鼠标缓慢移动时未触发mouseleave
- 鼠标悬停时要(缓慢)增加导航宽度
- 当绑定到多个元素时,Firefox 中的缓慢鼠标移动事件
- 当鼠标按下时,首先缓慢减少数量,然后增加下降速度(jQuery)