全新的jQuery。已经将下面的函数实现到我正在开发的页面中,而我认为相对简单的jQuery证明是有问题的。
$(document).ready(function(){
var leftnav = $("#leftnav ul li");
leftnav.hover(function(){
$(this).children('ul').stop(true, true).slideDown();
},function(){
$(this).children('ul').stop(true, true).slideUp();
});
});
基本上,这在Chrome和Opera中运行得非常出色 - 可爱,流畅,快速。在Firefox和IE8中,它像狗一样运行 - 生涩,缓慢,就像它穿着一套泥。正如我所说,我是jQuery的新手 - 这是我第一次尝试在网页中实现任何内容。我尝试使用mouseenter和mouseleave,但没有什么区别。
我原本预计会遇到IE8的问题,但有点因为我总是用它来宣誓而给我一些问题。我只是必须接受这个并做出结论吗?
由于
编辑:好的,我已经设法加快了速度。虽然仍然没有闪亮的Chrome闪光性能,IE8和Firefox现在被称为可接受的。我从这个优秀的页面获得了一些提示 - http://www.artzstudio.com/2009/04/jquery-performance-rules/我只是通过在我的标记 - #list中给出'#leftnav ul'它自己的ID,然后在我的jQuery代码中引用它来简单地使我的选择器变量更具体。所以,
var leftnav = $("#leftnav ul li");
变为:
var leftnavUl = $("#list li");
从我收集的内容中,这可以让jQuery更有效地磨练相关元素。
在firebug中使用console.time,我注意到每个slideDown操作的速度从~15ms增加到~10ms,只是在我的选择器中更具体。
就像我说的那样,并不像Chrome那样qucik,而是变得更好!
答案 0 :(得分:0)
如果它没有抛出错误或故障,那么你可能做的并不多。
代码看起来不像它有任何大规模的循环或任何会导致它滞后的东西,只是简单的浏览器handel jQuery。
你为什么不用:
$(“#leftnav ul li ul”)。hover(... ect ...)
这样你就可以删除'儿童'电话和变种。 除非你将它们用于别的东西,否则就是这样。