1

我有一个网页,其中包含一些 ASP.NET 面板和 JavaScript,当用户单击按钮以展开和折叠面板时执行。我需要以相反的顺序打开面板,但使用 JavaScript reverse() 似乎不会反转存储在组件中的项目的顺序(面板变量)。

我有以下 JavaScript:

function expandCollapsePanels() 
{
    var collapse = $('#<%= lbltogglePanels.ClientID %>').html() == "Collapse all panels";
    var panels = Sys.Application.getComponents(); //adding .reverse() does not work

    for (var i in panels) 
    {
        panels[i].set_Collapsed(collapse);
    }
}

如何修改上面的代码来做到这一点?

4

2 回答 2

3

您可以简单地朝相反的方向循环:

for (var i = panels.length-1; i>=0; i--) 
{
  panels[i].set_Collapsed(collapse);
}

演示:http: //jsfiddle.net/de6NF/1/

于 2012-05-24T08:35:15.730 回答
2

一种简单但可能不是最好的方法是将“面板”推送到 for..in 中的数组中,然后使用该数组在 for 循环中调用“set_Collapsed”。

于 2012-05-24T08:34:46.117 回答