2014-07-23 174 views
0

我有一个使用JQuery Accordion Menu进行导航的MVC项目。我想知道是否有什么办法可以修改菜单,这样,当我点击一个链接,菜单保持打开状态时,导航到下一个页面Jquery手风琴菜单 - 在浏览新页面时保持打开状态

的jQuery -

$(document).ready(function() { 


    //ACCORDION BUTTON ACTION 

    $('div.accordionButton').click(function() { 

     //IF THE DIV YOU CLICKED IS ALREADY OPEN, CLOSE AND REMOVE THE OPEN CLASS 

     if ($(this).next().hasClass('openDiv')) { 

      $('div.accordionContent.openDiv').slideUp('normal'); 

      $('div.accordionContent.openDiv').removeClass('openDiv'); 

     } 

      //CLOSE ANY OPEN DIVS, OPEN THE CLICKED DIV 

     else { 

      $('div.accordionContent.openDiv').slideUp('normal'); 

      $('div.accordionContent.openDiv').removeClass('openDiv'); 

      $(this).next().slideDown('normal'); 

      $(this).next().addClass('openDiv'); 

     } 

    }); 

    //HIDE THE DIVS ON PAGE LOAD 

    $("div.accordionContent").hide(); 

}); 

HTML -

@foreach (var sport in Model.SportTypesList) 
    { 
     <div id="wrapper"> 
      <div class="accordionButton">@sport.ToString()</div> 
      <div class="accordionContent"> 
       @foreach (var coupon in Model.CurrentCoupons()) 
       { 
        if (coupon.SportID.ToString().Equals(sport.ToString())) 
        { 
         <div id="bullets">></div> 
         @Ajax.ActionLink(@coupon.CouponName, "Index", "Home", new { couponName = coupon.CouponName, sportName = coupon.SportID.ToString() }, new AjaxOptions 
         { 
          UpdateTargetId = "coupons", 
          InsertionMode = InsertionMode.Replace, 
          HttpMethod = "GET" 
         }) 
         <br /> 
        } 
       } 
      </div> 
     </div> 
    } 
+1

您可以在这里查看各种有状态的解决方案。 1.通过服务器2.通过cookie 3通过localStorage。每个的实现略有不同。使用1,您必须设置一个类或javascript变量,以便在新页面加载时进行读取和操作,使用2和3时,您必须查询cookie /存储并对新页面加载进行操作。 –

回答

0

你可以把在会话中所选的选项卡的ID,并从那里只是检查ID,并保持开放的选项卡。一个简单的方法。

相关问题