Credo che il richiedente dovrebbe chiarire questo punto perche se usa un editor per inserimento di html e quest ultimo e' identico in piu' pagine, non puo' cambiare la classe di li attiva di conseguenza serve una cosa dinamica...
Non è del tutto vero.... In basso è riportato esattamente questo caso, anche se duplichi codice a go go su più pagine lo script continua a funzionare, naturalmente deve essere incluso su più pagine.
Mantenendo la logica usata fin d'ora, potresti aggiungere un piccolo script:
Codice:
$(document).ready(function(){
$('.item').removeClass('attiva');
var url = window.location.href.split('/').pop();
var links=$('.nav_item');
_.each(links,function(v,k){
var current=$(v).attr('href');
if(url===current){
$(v).parent().addClass('attiva');
}
});
});
HTML:
<ul>
<li class="attiva item"><a href="home.php" class="nav_item" data-name="home" target="_self">Home</a></li>
<li class="item"><a href="pag1.html" class="nav_item" data-name="pag1" target="_self">pag1</a></li>
<li class="item"><a href="pag2.html" class="nav_item" data-name="pag2" target="_self">pag2</a></li>
<li class="item"><a href="pag3.html" class="nav_item" data-name="pag3" target="_self">pag3</a></li>
</ul>
Codice:
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.0/underscore-min.js"></script>
Con queste linee di "codice" anche se ricarichi la/e pagina e/o aggiungi pagine a go go, non hai bisogno di scrivere / aggiungere nulla sullo script, in quanto attraverso l'each verifica tutti gli elementi del menu.
Risultato funzionante!