2010-12-20 5 views
1

접을 수있는 메뉴의 상태를 저장하고 jquery 쿠키 플러그인을 사용하려고합니다. 지금까지 문제가 있습니다. 어떤 도움이 필요합니까?쿠키 및 jquery로 UI 상태 저장

붕괴/

<script type="text/javascript"> 
    $(document).ready(function() { 

    $(".login-holder > ul > .loginTitle").click(function() { 
     $(this).parent().find("li").slideToggle("fast"); 
     if ($(this).parent().find(".toggle").html() == "+") { 
      $(this).parent().find(".toggle").html("-"); 
     } else { 
      $(this).parent().find(".toggle").html("+"); 
     } 
    }); 
    }) 
</script> 

XHTML의 난이 사용하는 쿠키를 완료했습니다

<ul class="account-links"> 
     <div class="loginTitle">User Options<span class="toggle">-</span></div> 
     <div class="menuLinks"> 
     <li> 
      <%= Html.ActionLink<EventController>(x => x.List(), "Events Near Me")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<MyEventsController>(x => x.List(), "My Events")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<AccountController>(x => x.Edit(), "My Profile")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<ClubController>(x => x.List(), "Clubs Near Me")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<MyClubsController>(x => x.List(), "My Clubs")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<AccountController>(x => x.ChangePassword(), "Change My Password")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<DependantController>(x => x.List(), "My Dependants") %> 
     </li> 
     </div> 
     </ul> 
    </div> 
    <% if (ViewModel.Profile.HasOrganizerInfo) { %> 
    <div class="login-holder"> 
    <ul class="account-links"> 
     <div class="loginTitle">Organizer Details<span class="toggle">-</span></div> 
     <div class=menuLinks> 
     <li> 
      <%= Html.ActionLink<AccountController>(x => x.Organizer(), "Organizer Details")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<EventController>(x => x.Edit(default(int?)), "Post An Event")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<EventAdminController>(x => x.List(), "Events Created By Me") %> 
     </li> 
     <li> 
      <%= Html.ActionLink<ClubController>(x => x.Edit(default(int?)), "Create A Club")%> 
     </li> 
     <li> 
      <%= Html.ActionLink<ClubAdminController>(x => x.List(), "Clubs Created By Me")%> 
     </li> 
     </div> 
    </ul> 
    </div> 
    <% } %> 
+0

코드에 쿠키에 대한 언급이 전혀 표시되지 않지만 뭔가 빠졌습니까? 성능, 가독성 및 유지 보수성을 위해 $ (this) .parent(). find (".toggle") (예 : var foo = ; foo.html()) 참조를 로컬에 저장해야합니다. – MightyE

+0

글쎄, 문제가 생겨서 아무런 참고가없이 깨끗한 복사본을 넣어야한다고 생각했기 때문에 상황을 진창에 빠뜨리지는 않았다. – Kevin

답변

0

한 가지 방법 확장 않는 스크립트가 쿠키를 설정 한 unload 핸들러를 연결했다 -을 현재 기본값 (보기 또는 숨김 여부에 관계없이)이 아닌 모든 클래스의 ID를 찾은 다음이를 쿠키에 저장합니다. 페이지가 다시로드되면 해당 쿠키가 존재하는지 확인하고, 쿠키가 존재하면 선택기로 ID 문자열을 사용하여 이전에 저장 한 항목에 toggled from the default 클래스를 적용합니다.