$.each 的 jQuery 替代品

发布于 2024-11-02 10:51:49 字数 222 浏览 3 评论 0原文

我发现 $.each 非常慢,如果包含大量各种 jQuery 效果,会给网页带来问题。

我想知道 $.each 是否有一个好的替代方案,例如:

$('ul li').each(function() {
   var singleLi = $(this);
});

如果没有悬停,我如何在不使用each的情况下做同样的事情?

谢谢。

I found that the $.each is very slow and makes problems to the web pages if containing lot of various jQuery effects.

I'd like to know if there is a good alternative to the $.each, for example:

$('ul li').each(function() {
   var singleLi = $(this);
});

without the hover, how can I do the same without using each?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

冷心人i 2024-11-09 10:51:49

如果您想要“$.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()”。

然而,我怀疑从“$.each()”切换到“for”循环本身会产生很大的差异。

If you want an actual alternative to "$.each()", just use a "for" loop:

var liElements = $('ul li');
for (var i = 0; i < liElements.length; ++i) {
  var li = liElements[i];
  // ... lots of various jQuery effects ...
}

The suggestions that you can skip ".each()" and just use ".hover()" directly are correct, but they miss the point: those jQuery routines will perform a ".each()" internally anyway.

I doubt that switching from "$.each()" to the "for" loop will all by itself make much of a difference, however.

水晶透心 2024-11-09 10:51:49

完全一样的方式,没有 each

$('#list li').hover(function() {
        $('#myDiv').stop().fadeIn(400);
    }, function() {
        $('#myDiv').stop().fadeOut(400);
    })
});

Exactly the same way without each

$('#list li').hover(function() {
        $('#myDiv').stop().fadeIn(400);
    }, function() {
        $('#myDiv').stop().fadeOut(400);
    })
});
生来就爱笑 2024-11-09 10:51:49

是的...只需将悬停添加到所有 li 中

$('#list li').hover(function() {
    $('#myDiv').fadeIn(400);
}, function() {
    $('#myDiv').fadeOut(400);
});

$('#myDiv').fadeOut(400);

yes... just add the hover to all li's

$('#list li').hover(function() {
    $('#myDiv').fadeIn(400);
}, function() {
    $('#myDiv').fadeOut(400);
});

$('#myDiv').fadeOut(400);
橘味果▽酱 2024-11-09 10:51:49

由于 ID 必须是唯一的,因此如果删除 .each(),整个脚本不应改变。

$.hover() 意义不大。

$('#list li').hover(function() {
    $('#myDiv').fadeIn(400);
}, function() {
    $('#myDiv').fadeOut(400);
});

$('#myDiv').fadeOut(400);

As an ID has to be unique, that whole script should not alter if the .each() is removed.

$.hover() does not mean much.

$('#list li').hover(function() {
    $('#myDiv').fadeIn(400);
}, function() {
    $('#myDiv').fadeOut(400);
});

$('#myDiv').fadeOut(400);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文