これは可能かどうかは分かりませんが、今は左側のナビゲーションバーにリンクがたくさんあります。私はアクティブなクラス(状態)を追加していますが、リンク先のユーザーがクリックしているURLには、そのURLと現在のページURLが表示されます。これはうまくいく。jQuery:アクティブなクラス/状態を追加し、それを保持する!
$("#sidebar-nav ul li a").each(function() {
if(this.href == window.location || this.href == document.location.protocol + "//" + window.location.hostname + window.location.pathname)
$(this).addClass("active");
});
各サイドバーのリンクは、「カテゴリ」そうを表すのでしかし、私は。人々は、彼らが上陸したその最初のページの他のページにクリックしている間、その要素のアクティブ状態/クラスを「保持」を続行する必要があります私はサイドバーのリンクを、URLが一致する最初のページだけではなく、アクティブにしておきたい。
ユーザーが最初に着陸したページ内をクリックすると、URLがもう一致しないため、アクティブな状態が失われます。私は、別のsidbar navをクリックすると、アクティブ状態を削除したいだけです。これは理にかなっていると思いますが、サイドバーnav ulの別の要素をクリックしない限り、最初はアクティブな状態に設定されています。
HTML:
<div id="sidebar-nav">
<ul>
<li><a href="link1">Link One</a></li>
<li><a href="link2">Link Two</a></li>
<li><a href="link3">Link Three</a></li>
<li><a href="link4">Link Four</a></li>
</ul>
</div>
HTMLを投稿できますか? – Chandu
投稿した。問題は、実際には/ category1/link1 category1/link2などのような構造がないということです。そのため、以下の提案はうまくいきません。 – IntricatePixels
構造の例を投稿できますか?基本的にURLの中には、柔軟なソリューションを望む場合には、どのカテゴリにいるのかを特定する必要があります。そうでなければ、特定のリンクを探して、それらをjavascriptのハードコードされた配列としてカテゴリにマップすることができます。しかし、あなたはそのように保守性の悪夢を作成します – Adrian