好的,所以我正在开发一个新网站。它是一个社交网络类型的网站,它有很多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是优化的最佳选择吗?
谢谢!
答案 0 :(得分:0)
我不完全确定为什么firefox较慢但你可以尝试添加一个context元素。您可以执行以下操作,而不是将所有事件绑定到根元素:
$('div.clickme', $('#recent_photos')[0]).live('mouseover mouseout', function() {
...
});
这样做可以最大限度地减少遍历量和绑定到同一节点的事件数量。
要确定哪个函数调用很慢,您可以使用firebug来编写代码。要获得有用的结果,您必须使用未压缩的jQuery版本。