jQuery一次为多个元素清理滑动切换

jQuery一次为多个元素清理滑动切换,jquery,internet-explorer-6,performance,each,slidetoggle,Jquery,Internet Explorer 6,Performance,Each,Slidetoggle,我使用幻灯片切换技术在我的应用程序中显示和隐藏100多个div的全部信息。我有“全部显示”和“全部隐藏”按钮,我希望它们也有“滑动切换”动画,而不仅仅是“全部显示”和“全部隐藏”。然而在IE6上,当应用到每个元素时,slideToggle运行得非常慢 有人知道如何加快速度吗?此外,我正在切换msg_头中的图标,但这并没有减缓它的速度。如果我删除滑动切换并在“全部显示/全部隐藏”上仅显示/隐藏它,则它的性能良好。不过,如果可能的话,我希望有动画 <p class="msg_head" onc

我使用幻灯片切换技术在我的应用程序中显示和隐藏100多个div的全部信息。我有“全部显示”和“全部隐藏”按钮,我希望它们也有“滑动切换”动画,而不仅仅是“全部显示”和“全部隐藏”。然而在IE6上,当应用到每个元素时,slideToggle运行得非常慢

有人知道如何加快速度吗?此外,我正在切换msg_头中的图标,但这并没有减缓它的速度。如果我删除滑动切换并在“全部显示/全部隐藏”上仅显示/隐藏它,则它的性能良好。不过,如果可能的话,我希望有动画

<p class="msg_head" onclick="toggleSelection($(this));">Heading</p>
<div class="msg_body">
   content
</div>

对于记录,单独的toggleSection功能可以完美地执行。用show和hide替换showall和hideall函数中的slideToggle也很有效。我只是想看看是否有一种方法可以让幻灯片切换动画看起来没有阻塞。

您使用的是哪个版本的jQuery?如果您没有使用最新的1.4.1,我强烈建议您升级。jQuery的开发人员对最新版本进行了重大的性能检查,以解决您上面描述的问题。这里有一个到发行说明的链接以获取更多信息:

这不会有多大帮助,但我必须在这里给出一个简单的“否”。同时制作100多个DIV的动画似乎有点过分,但当访问者在一台像样的机器上运行现代浏览器时,您可能可以侥幸逃脱。但是如果你想在IE6中加快速度。。。你无能为力。浏览器是古老的,包括javascript渲染引擎,它永远无法在看起来平滑美观的同时实现您想要的功能。

是的,我不得不同意。我放弃了这个。
function toggleSelection(element) {
    element.next("msg_body").slideToggle(250);
    element.find(":first-child").toggleClass("ui-icon-circle-arrow-s");
    element.find(":first-child").toggleClass("ui-icon-circle-arrow-e");
}

function showall() {
    $(".msg_head").each(function() {
      $(this).next(".msg_body:hidden").slideToggle(250);
      $(this).find(":first-child").attr('class','ui-icon ui-icon-circle-arrow-s');
    });
}

function hideall() {
    $(".msg_head").each(function() {
      $(this).next(".msg_body:visible").slideToggle(250);
      $(this).find(":first-child").attr('class','ui-icon ui-icon-circle-arrow-e');
    });
}