をjQuery history plugin.
見たりしたい場合があります
、あなたは始めましょう以下のようなものでnavigation
オプションを有効にする:デフォルトでは
$('#accordion').accordion('option', 'navigation', true);
、このオプションは、URLのfragmeに一致するhref
を持っているアコーディオンヘッダーのリンクを探しますnt(URLがhttp://somesite.com/about#contactの場合は#contactがフラグメント)、そのヘッダーリンクのセクションが開きます。あなたが別のページに移動するにはアコーディオンを使用して、あなたはおそらく照合するURLフラグメントを持っていないので、カスタムnavigationFilter
を記述する必要がありますしているので:
$('#accordion').accordion('option', 'navigationFilter', function(){ ... });
あなたはにnavigationFilter
オプションを使用することができます現在のページのURLへのヘッダーリンクと、accordionプラグインがどのように一致するかを上書きします。
これまでのところ、現在のページに基づいて開くアコーディオンの正しいセクションがあります。次に、ページに対応するそのセクションのリンクを強調表示する必要があります。あなたのような何かをそれをやる:ここでは
<script type="text/javascript">
$(document).ready(function() {
$('#accordion li').each(function() {
var li = $(this);
var a = $('a', li);
if(/* compare the href of the 'a' element to the current URL */) {
li.addClass('active');
}
});
});
</script>
<div id="accordion">
<h3><a href="#">Section 1</a></h3>
<div>
<ul>
<li><a href="/about">About</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</div>
<h3><a href="#">Section 2</a></h3>
<div>
<ul>
<li><a href="/help">Help</a></li>
<li><a href="/faq">FAQ</a></li>
</ul>
</div>
</div>
我々は現在のURLと一致するものを選ぶ、ナビゲーションアコーディオン内のすべてのページのリンクを経由、および、それに.active
クラスを適用していたあなたにCSSでスタイルを変えることができます。余談
アン:別のは、おそらくより良い、第二部を達成する方法は、既に適切なリンクに適用.active
クラスにページを構築することですが、それはあなたがバックエンドを超えると、そのコントロールを持っていると仮定しあなたはそれを行う方法を知っています。実際にはその場合、navigationFilter
のもの全体をスキップして<script>
ブロックを生成して、アコーディオンのactive
オプションを設定して右側のセクションを開くことができます。
ここで説明したハッシュ変更方法を使用した場合、次のプラグインは匹敵しません:http://benalman.com/projects/jquery-bbq-plugin/ - jQuery履歴プラグインが間もなく置き換えられます。 –
@Alex - nice!そのことを知らなかった。 – Matt
情報をお寄せいただきありがとうございます。あなたの解決策やノーサプライズ(上記)からの解決策を手に入れることができるかどうかがわかります。 – MelissaTA