Evidenziando pagina corrente del nav
-
18-09-2019 - |
Domanda
Ho bisogno di evidenziare la pagina corrente nel mio nav sinistra.
La navigazione deve essere caricato esternamente attraverso un .shtm includere:
<!--#include file="leftnav-menu.inc"-->
I miei urls assumono la forma di:
www.xxx.com/mission-critical.shtml
, ma a volte solo:
www.xxx.com/energy.shtml (ad esempio, una parola senza trattino)
Il mio nav catalogata come 'Mission critical'
Come posso evidenziare la Li ul con "class = selezionato"? Ho visto qualcosa di simile:
$(function(){
var path = location.pathname.substring(1);
if ( path )
$('.leftmenuNav ul li a[@href$="' + path + '"]').attr('class', 'selected');
});
Non riesco a ottenere la mia testa intorno la scissione stringa ecc ...
Esempio bar nav:
<ul>
<li><a href="corporate-responsibility.shtml">Corporate responsibility</a></li>
<li><a href="overview.shtml">Overview</a></li>
<li><a href="governance.shtml">Governance</a></li>
<li><a href="our-approach.shtml">Our approach</a></li>
</ul>
Soluzione
D'accordo, la sintassi jQuery era leggermente sbagliata. Questo dovrebbe funzionare:
$.ready(function()
{
var path = location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
if ( path )
$('.leftmenuNav ul li a[href="' + path + '"]').attr('class', 'selected');
});
Inoltre, assicurarsi che il leftmenuNav è di destra (il codice di cui sopra non vederlo)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow