保持Jquery手风琴菜单在当前页面

时间:2015-08-12 11:29:36

标签: javascript jquery html jquery-ui-accordion

我相信我会在特定情况下获得帮助。毫无疑问,有很多解决方案可以实现这一目标,但在我看来,我无法实现这一目标。 以下是我使用java脚本动态生成html的代码。

编辑1:我只想按照锚标记的​​href属性保持打开当前的手风琴平移,这实际上是当前页面网址。就是这样。

用于生成html的JS代码:

<script>
  $.ajax({
    url: "/categories",
    type: 'GET',
    success: function(data) {
      var content = "";

      content += '<div id="category-navigation">';
      for (i = 0; i < data.length; i++) {

        content += '<div class="head">';
        content += '<label class="categoryLables">' + data[i].title;
        content += '</label>';

        content += '<div>';
        content += '<div class="boardsMargin">';
        content += '<ul>';

        for (j = 0; j < data[i].assigned_boards.length; j++) {

          content += '<li>';
          content += "<a href='/#categories/" + data[i].id + "/boards/" + data[i].assigned_boards[j].id + "'>";
          content += data[i].assigned_boards[j].name;
          content += '</a>';
          content += '</li>';
        }

        content += '</ul>';
        content += '</div>';
        content += '</div>';
        content += '</div>';
      }
      content += '</div>';

      $("#myNavigation").html("");
      $("#myNavigation").html(content);

      $('.head').accordion({
        heightStyle: "content",
        active: true,
        collapsible: true
      });


    }

  });

 </script>

HTML:

<div class="myNavigation">
</div>

编辑2:为了更清晰的视图,这是我手风琴的图片。

accordion

作为旁注:我正在使用ruby 2.2.1和rails 4.1

2 个答案:

答案 0 :(得分:3)

你可以这样使用localStorage

$(function () {
    $("#accordion").accordion();
    if (localStorage.getItem('active') != null) {
        $($('h3').get(parseInt(localStorage.getItem('active')))).trigger("click");
    }
});

$('h3').click(function () {
    localStorage.setItem('active', $(this).index("h3"));
});

Here is the JSFiddle demo:)

注意:您可能还想阅读sessionStorage

答案 1 :(得分:1)

尝试根据要保持打开的面板索引设置active选项,即0,1,2等,并将collapsible设置为false

根据文档:

  

整数:处于活动状态(打开)的面板的从零开始的索引。负值选择从最后一个面板向后移动的面板。

参考:http://api.jqueryui.com/accordion/#option-active

JS:

$('.head').accordion({
    heightStyle: "content",
    active: 1, //Change this
    collapsible: false
});