我发现$ .each非常慢,如果包含大量各种jQuery效果,会给网页带来问题。
我想知道是否有一个很好的替代$ .each,例如:
$('ul li').each(function() {
var singleLi = $(this);
});
没有悬停,我怎么能不使用它们呢?
感谢。
答案 0 :(得分:23)
如果你想要一个实际的替代到“$ .each()”,只需使用“for”循环:
var liElements = $('ul li');
for (var i = 0; i < liElements.length; ++i) {
var li = liElements[i];
// ... lots of various jQuery effects ...
}
您可以跳过“.each()”并直接使用“.hover()”的建议是正确的,但是他们忽略了这一点:那些jQuery例程无论如何都将在内部执行“.each()”。 / p>
我怀疑从“$ .each()”切换到“for”循环本身会产生很大的不同。但是,
答案 1 :(得分:6)
没有each
$('#list li').hover(function() {
$('#myDiv').stop().fadeIn(400);
}, function() {
$('#myDiv').stop().fadeOut(400);
})
});
答案 2 :(得分:3)
是的...只需将悬停添加到所有li的
$('#list li').hover(function() {
$('#myDiv').fadeIn(400);
}, function() {
$('#myDiv').fadeOut(400);
});
$('#myDiv').fadeOut(400);
答案 3 :(得分:2)
由于ID必须是唯一的,因此如果删除.each()
,则不应更改整个脚本。
$.hover()
并不重要。
$('#list li').hover(function() {
$('#myDiv').fadeIn(400);
}, function() {
$('#myDiv').fadeOut(400);
});
$('#myDiv').fadeOut(400);