Jquery - Firefox的慢速.live()悬停速度,Chrome& IE很快

时间:2011-02-21 19:44:24

标签: javascript html css jquery

好的,所以我正在开发一个新网站。它是一个社交网络类型的网站,它有很多jquery交互性。

当我尝试使用JQuery.live()进行鼠标悬停效果时出现问题。它在Chrome和& Safari,在IE中相当快,在Firefox中速度慢。非常奇怪,因为几乎总是FF比IE(8/9)快。

有问题的网页: http://www.modelfy.com/user/22/info

如果将鼠标悬停在Chrome中的“最新图片”上,然后在Firefox中,您会发现速度存在巨大差异。

$('.hoverme').live('mouseover mouseout', function(event) {
  if (event.type == 'mouseover') {
    $(this).addClass('hoverclass');
  } else {
    $(this).removeClass('hoverclass');
  }
});

非常感谢任何帮助。另外,.live是优化的最佳选择吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不完全确定为什么firefox较慢但你可以尝试添加一个context元素。您可以执行以下操作,而不是将所有事件绑定到根元素:

$('div.clickme', $('#recent_photos')[0]).live('mouseover mouseout', function() {
  ...
});

这样做可以最大限度地减少遍历量和绑定到同一节点的事件数量。

要确定哪个函数调用很慢,您可以使用firebug来编写代码。要获得有用的结果,您必须使用未压缩的jQuery版本。