Per ottenere la fisarmonica per aprire automaticamente la sezione corretta in base alla URL, si inizia con abilitando l'opzione navigation
con qualcosa di simile:
$('#accordion').accordion('option', 'navigation', true);
per impostazione predefinita, questa opzione cerca il link intestazione della fisarmonica che ha un href
che corrisponde al Fragme URL nt (se il tuo URL è http://somesite.com/about#contact, #contact è il frammento) e apre la sezione del link dell'intestazione. Dal momento che si sta utilizzando la fisarmonica per navigare pagine diverse, probabilmente non sarà necessario frammenti URL per abbinare contro, quindi dovrete scrivere un personalizzato navigationFilter
:
$('#accordion').accordion('option', 'navigationFilter', function(){ ... });
È possibile utilizzare l'opzione navigationFilter
a scavalca il modo in cui il plugin per fisarmonica abbina i collegamenti dell'intestazione all'URL della pagina corrente.
Finora, abbiamo aperto la sezione destra della fisarmonica in base alla pagina corrente. Successivamente, dobbiamo evidenziare il collegamento in quella sezione che corrisponde alla pagina. Potrai farlo con qualcosa di simile:
<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>
Qui stiamo attraversando tutti i link nella pagina della fisarmonica di navigazione, scegliendo quello che corrisponde l'URL corrente, e l'applicazione di una classe .active
ad esso, che si può quindi avere uno stile diverso con i CSS.
Una parentesi: un'altra, probabilmente meglio, modo per realizzare la seconda parte è quello di costruire la pagina con la classe .active
già applicato per il collegamento appropriato, ma che presuppone che il controllo sul back-end e che sai come farlo In effetti, in questo caso, è possibile saltare l'intera cosa navigationFilter
e generare un blocco <script>
per impostare l'opzione active
sulla fisarmonica per aprire la sezione corretta.
Se si è passati con il metodo di modifica dell'hash descritto qui, il seguente plug-in non ha eguali: http://benalman.com/projects/jquery-bbq-plugin/ - presto sostituirà il plug-in della cronologia jQuery che è terribilmente datato. –
@Alex - bello! non ne ero a conoscenza. – Matt
Grazie per le informazioni - vedrò se riesco a farlo funzionare con la tua soluzione o con quello di No Surprises (sopra) - le dita incrociate! – MelissaTA