我在页面上有数百个元素共享一个类,并且我需要优化应用程序jQuery Toggle(),以防止在应用该函数时浏览器锁定,如下所示:

$j('.textDate').toggle() //this locks up this browser


单击此函数会导致浏览器锁定并冻结-因此,我尝试将其分成一个循环并分别在每个元素上运行该函数,然后我需要弄清楚该数组的一些超时/分解情况,以保持浏览器冻结:

$j('#showDatesCheckbox').click(function(){
    var textdate = $j('.textDate'); //1000+ elements
    for(var i = 0; i < textdate.length; i++)
    {
          $j(textdate[i]).toggle();
    }
});


这仍然行不通吗?

最佳答案

只是一个问题。

var $textDates = $('.textDate');如何缓存结果呢?

然后,以后您可以致电$textDates.addClass('hidden');

缓存的列表应使后续操作更快地实现。

我添加了一个jsFiddle.net来玩:http://jsfiddle.net/cRRcC/2/

这会将30,000个元素添加到页面(divs),然后为您提供隐藏它们的链接。

这样看来不到一秒钟。该命令有什么帮助您的吗?

谢谢,
自动曝光

09-19 13:50