Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Autoselezionare elemento menu al caricamento della pagina

    Salve a tutti

    Ho la necessità di far evidenziare ogni elemento del menu al caricamento della pagina. In pratica ho pensato in questo modo: non devo far altro che ricavare il nome della pagina corrente e andare a modificare nel DOM i tag il cui attributo href sia uguale al nome della pagina. Dopodich� modificare solo la classe di questo oggetto. Questo è il codice:

    codice HTML:
    <!DOCTYPE html>
    
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
        <script type="text/javascript" src="js/prova.js"></script>
    </head>
    
    
    <body onload=start()>
    
    <nav class=menu>
            <ul>
                <li class="default"><a href="index.php">Home</a></li>
                <li class="default"><a href="chisiamo.php">La struttura</a></li>
                <li class="default"><a href="reparti.php">I nostri reparti</a></li>
                <li class="default"><a href="prenotazioni.php">Prenotazioni</a></li>
                <li class="default"><a href="contatti.php">Info e Contatti</a></li>
            </ul>
        </nav>

    Dal codice seguente si può ben capire che al momento del caricamento della pagina deve cambiare la classe dell'elemento li, avente per figlio il tag <a> il cui attributo href sia uguale al nome della pagina corrente. Ecco il codice JS:

    codice:
    function start () {
    autoselect();
    }
    
    function autoselect(){
        url = location.href; 
        l = url.substr(url.lastIndexOf("/")+1).split(/[?#]/)[0];
        
        lista_url = document.getElementsByTagName("a");
        var ref = null;
        
        for (i=0; i < lista_url.length; i++) {
            
            if (lista_url.item(i).getAttribute("href") == l) {
                ref = lista_url.item(i); //ref contiene il riferimento del tag a avente valore href pari al filename della pagina corrente
            }
        }
        li = ref.parentNode;
        li.className = "selected";
        
        alert(li);
    }

    Il seguente codice mi modifica la classe dell'elemento li -provato con un alert(li.className) da console js - ma quando apro la pagina il menu non viene selezionato. Da console javascript dando i comandi della funzione invece funziona perfettamente.

    Perché?
    Ultima modifica di the_indios; 06-06-2016 a 13:23

  2. #2
    Ho risolto, il problema riguardava altro contenuto presente nella funzione start

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.