作業中の Web サイトの垂直アコーディオン メニューを作成しようとしています。jqueryで何かをするのはこれが初めてです。いくつかのことを除いて、希望どおりの作業メニューを取得できました。
1) ロードされたページに基づいて展開されたままになるメニューが必要です。2 番目のメニュー内の項目をクリックすると、ページがリロードされたときに 2 番目のメニューを展開する必要があります。メニュー内から新しいページをクリックしてロードすると、メニューが展開されたままになりません。ページをリロードすると、ヘッダーをクリックして再度展開するまで、完全に折りたたまれます。何日もオンラインで検索してきましたが、この問題を解決するために使用できるものが見つかりません。jquery cookie プラグインを使用して、現在読み込まれているページを確認し、それを使用して展開する必要があるメニューを特定することを検討しましたが、どちらも機能しません。
2) メニューはクリックしたときにのみ展開され、もう一度クリックしても折りたたまれません。展開したばかりのメニューをもう一度クリックして折りたたむことはできますか?
作成した js ファイルは次のとおりです。
function initMenu() {
$('#menu ul').hide();
$('#menu li a').click(function () {
var checkElement = $(this).next();
if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$(this).siblings().removeClass("selected");
return false;
}
if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#menu ul:visible').slideUp('normal');
checkElement.slideDown('normal');
if (!$(this).hasClass("selected")) {
// Remove the class from anything that is active
$("a.selected").removeClass("selected");
// And make this active
$(this).addClass("selected");
}
return false;
}
});
}
$(document).ready(function () {
initMenu();
});
完全な html と css の jsfiddle もここにあります: http://jsfiddle.net/CShsY/
ありがとう。