이 내 아코디언의 생성 된 코드입니다 :JQuery와 쿠키는 이전 값을 사용
<div id="treeview-accordion">
<h3><a href="#" accindex="0">Basic</a></h3>
<div>
<ul class="navigation-treeview treeview-sanjo" id="yw0">
<li><span style="font-weight:bold"><a href="/sanjo/site/index"> Home</a></span>
<ul>
<li><span> Profile</span>
<ul>
<li><span><a href="/sanjo/user/profile"> View Profile</a></span></li>
<li><span><a href="/sanjo/user/profile/edit"> Update Profile</a></span></li>
<li><span><a href="/sanjo/user/profile/changepassword"> Change Password</a></span></li>
</ul>
</li>
</ul>
</li>
<li><span> Personnel Management</span>
<ul>
<li><span><a href="/sanjo/user/admin"> Manage Personnel</a></span>
<ul>
<li><span><a href="/sanjo/user"> List Personnel</a></span></li>
<li><span> Add Personnel</a></span></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<h3><a href="#" accindex="1">Basic2</a></h3>
<div>
<ul class="navigation-treeview treeview-sanjo" id="yw01">
<li><span style="font-weight:bold"><a href="/sanjo/site/index2"> Home2</a></span>
<ul>
<li><span> Profile</span>
<ul>
<li><span><a href="/sanjo/user/profile2"> View Profile2</a></span></li>
<li><span><a href="/sanjo/user/profile/edit2"> Update Profile2</a></span></li>
<li><span><a href="/sanjo/user/profile/changepassword2"> Change Password2</a></span></li>
</ul>
</li>
</ul>
</li>
<li><span> Personnel Management2</span>
<ul>
<li><span><a href="/sanjo/user/admin2"> Manage Personnel2</a></span>
<ul>
<li><span><a href="/sanjo/user2"> List Personnel2</a></span></li>
<li><span> Add Personnel2</a></span></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
그리고 매번 내가 링크를 클릭, 내가하는 <h3>
링크를 기반 쿠키 "sanjotreeaccordion"의 값을 저장하고
$("#tree-accordion a").bind("click",function(){
var cookie=$(this).closest("div").prev("h3").find("a").attr("accindex");
$.cookie("sanjotreeaccordion", cookie);
alert($.cookie("sanjotreeaccordion"));
});
은 다음 페이지를 다시로드에, 나는 쿠키 "sanjotreeaccordion"값을 얻을, 그래서는 아코디언 창 열기를 결정하는 데 사용할 수 있습니다 : : 아래
$(document).ready(function(){
alert($.cookie('sanjotreeaccordion'));
var ind = ($.cookie('sanjotreeaccordion') || 0)*1;
$('#tree-accordion').wijaccordion({'autoHeight':false,'requireOpenedPane':false,'selectedIndex':ind});
$.cookie('sanjotreeaccordion',ind);
});
알리미가 있음을 눈치 채 셨을 것입니다. 쿠키의 값을 결정할 때 알리미를 사용합니다. WijAccordion은 아코디언을 만드는 함수이며 selectedIndex
옵션의 값에 따라 창을 엽니 다 (0
은 첫 번째 창을 나타내며 1
은 두 번째를 의미 함).
이제 wierd 부분 (입력 할 때 다음 부분을 수행 중입니다).
처음에는 코드를 실행했지만 쿠키가 아직 존재하지 않으므로 첫 번째 창 (쿠키가 null이므로 0
을 반환하고 1
에 곱함)이 열립니다. 그 값은 쿠키에 저장됩니다. (나는 쿠키를 확인했는데, 그것은 0
이다.)
그런 다음 두 번째 창에서 링크를 클릭 했으므로 쿠키에 1
(경고 값은 1
)이라고 저장됩니다. 그러나 페이지가 다시로드되면 쿠키 값의 경고는 여전히 0
입니다. 쿠키를 다시 클릭하면 쿠키 값이 1
으로 변경됩니다. 즉, 페이지가 다시로드 될 때 쿠키의 이전 값을 얻게됩니다.
내 코드에 어떤 문제가 있습니까? 아니면 내 논리가 올바르지 않습니까? 나는 링크를 상부 <h3>
- 입니다 내가 따라야 할 순서를 따르지 않는 건가요
- 쿠키 값을 얻으십시오
- 쿠키 값을 사용하여 아코디언의 해당 창을 엽니 다. 당신이보고 할 일들
안녕하세요, pollo, 답장을 보내 주셔서 감사합니다. 나는 "나무 아코디언"을 찾으려고 노력했는데, 붙여 넣은 코드에서 찾을 수 없습니다. 아마도 당신은 그것을 읽는 중에 서둘러야합니다 : p 여기에있는 코드는 그대로 복사하여 붙여 넣었습니다. 클릭 수 있으므로 ID가 제대로 호출되었음을 알 수 있습니다. – Macinville
안녕 Macinville, 미안 해요 내 오타 - 그것은 나무 아코디언 (끝 "에서"통지하지 "내"이전 주석. 희망은 도움이 ... –