前の値を使用しています。私は、リンクをクリックし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
は2番目を意味します)。
今、私は次の部分を入力しています。
最初は、コードを実行したときにクッキーが存在しないため、最初のペインが開きます(クッキーはnullなので、0
を返して1
に掛けます)。その値はクッキーに保存されます。 (私はクッキーをチェックしました、それは0
です)。
次に、2番目のペインのリンクをクリックしたため、1
をクッキーに保存すると予想されます(アラートでは、クッキーの値は1
です)。しかし、ページがリロードされたとき、クッキー値のアラートはまだ0
です。もう一度リンクをクリックすると、クッキーの値が1
に変更されます。言い換えれば、ページがリロードされたとき、私は前回のクッキー値を取得しています。
私のコードにはどこの問題がありますか、それとも私のロジックが間違っていますか?私は
- は、その上側
<h3>
- の
- GET「accindexは」クッキーに
- ページをリロード を値を保存し、リンクをクリックしている私がフォローしたいシーケンスを、以下ではないのです
- クッキーの値を取得
- クッキーの値を使用してアコーディオンの適切なペインを開きますか?
こんにちは、ポロー、返信いただきありがとうございます。私は "ツリーアコーディオン"を見つけようとしましたが貼り付けられたコードには見つかりませんでした。おそらくあなたはそれを読んでいる間急いでいます:p ここのコードはそのまま貼り付けられ、クリックすると、IDが正しく呼び出されたという証拠になると思います。 – Macinville
こんにちはMacinville、申し訳ありませんが私のタイプミス - それは木のアコーディオンでした(最後の "私の前のコメントのように"ではない "注意"。 –