1

いくつかの ASP.NET パネルと、ユーザーがボタンをクリックしてパネルを展開および折りたたむときに実行される JavaScript を含む Web ページがあります。パネルを逆の順序で開く必要がありますが、JavaScript の reverse() を使用しても、コンポーネント (panels 変数) に格納されているアイテムの順序が逆になるようには見えません。

次の 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 に答える