das Akkordeon Um automatisch den richtigen Abschnitt basierend auf der URL zu öffnen, werden Sie beginnen mit die navigation
Option mit so etwas wie ermöglicht:
$('#accordion').accordion('option', 'navigation', true);
sucht standardmäßig diese Option für das Akkordeon-Header Link, der ein href
hat, der die URL fragme Spiele nt (wenn Ihre URL http://somesite.com/about#contact ist, #contact ist das Fragment) und öffnet den Abschnitt dieses Headerlinks. Da Sie das Akkordeon verwenden zu verschiedenen Seiten zu navigieren, werden Sie wahrscheinlich nicht URL-Fragmente müssen gegen übereinstimmen, so dass Sie eine benutzerdefinierte navigationFilter
schreiben müssen:
$('#accordion').accordion('option', 'navigationFilter', function(){ ... });
können Sie verwenden, um die navigationFilter
Option überschreiben, wie das Akkordeon-Plugin Header-Links mit der URL der aktuellen Seite übereinstimmt.
Bis jetzt haben wir den richtigen Abschnitt des Akkordeons geöffnet, basierend auf der aktuellen Seite. Als nächstes müssen wir den Link in diesem Abschnitt hervorheben, der der Seite entspricht. Sie werden feststellen, dass wie mit etwas tun:
<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>
Hier sind wir durch alle Seite Links in der Navigations Akkordeon gehen, die Kommissionierung, die die aktuelle URL übereinstimmt, und Anlegen eines .active
Klasse es, was Sie kann dann mit CSS anders formatieren.
Nebenbei: eine andere, wahrscheinlich besser, Art und Weise der zweite Teil zu erreichen, ist die Seite mit der .active
Klasse bereits auf den entsprechenden Link angelegt zu bauen, aber das setzt voraus, dass die Kontrolle über das Backend haben und dass du weißt wie man es macht. In der Tat, wenn das der Fall ist, könnten Sie die ganze navigationFilter
Sache überspringen und einen <script>
Block erzeugen, um die active
Option auf dem Akkordeon zu setzen, um den rechten Abschnitt zu öffnen.
Wenn Sie mit der hier beschriebenen Methode zum Ändern von Hashes gehen, ist das folgende Plugin unerreicht: http://benalman.com/projects/jquery-bbq-plugin/ - es wird bald das jQuery-Verlaufs-Plugin ersetzen, das schrecklich veraltet ist. –
@Alex - nett! Das war mir nicht bewusst. – Matt
Danke für die Info - ich werde sehen, ob ich es mit Ihrer Lösung oder mit der von No Surprises (oben) arbeiten kann - Daumen drücken! – MelissaTA