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

    assegnare dinamicamente la classe active

    Ciao a tutti, vi scrivo perchè stò cercando di assegnare una classe dinamicamente ai diversi link, ma senza esito positivo.
    Il codice che ho è:
    codice:
     <div class="live">
            [img]templates/css/comp/pulsante_live_off.png[/img]
        </div>
        <nav class="menu">
            <ul>[*]HOME[*]CONCERTI[/list]
        </nav>
    e javascript:
    codice:
    $(document).ready(function() {
       provas();
    })
    
    function provas(){
         $(".menuActive").on("click", function(){
            $(".menuActive.active").removeClass("active");
            $(this).addClass("active");
          
        });
    }
    Ovviamente ho nel css una classe "active" con degli stili diversi....
    Però non funziona, qualcuno mi sa dire dove sbaglio? o ha idea di come si faccia?
    Grazie in anticipo!
    Stefania
    Destinato alla gioia, l'uomo si nutre di noia

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    quando clicchi su un link e ti cambia pagina quello che hai fatto in javascript si perde. Dovresti invece al caricamento della pagina settare la classe active in base a qualcosa che ti permette di riconoscere quale link effettivamente deve avere questa classe.

    Una soluzione che puoi sicuramente adottare consiste nel confrontare l'url della pagina attuale con l'attributo href dei diversi link così da assegnare la classe al giusto link.

  3. #3
    si, è meglio, ci stò provando ma anche quì di sicuro sbaglio qualcosa perchè non funge :S
    il codice che ho è:
    codice:
    <script type="text/javascript" language="javascript">
     function locationPathname(){ 
      var path = window.location.pathname.split('/'); 
      path = path[path.length-1]; 
     alert(path); 
      if (path !== undefined) { 
        $('livello2 a[href="/' + path + '"]').addClass('active');
    </script>
    e html:
    codice:
               <div class="livello2">
                         <div class="live">
                             [img]pulsante_live_off.png[/img]
                         </div>
                         <nav class="menu">
                             <ul>
                                 [*]HOME
                                 [*]CONCERTI[/list]
                         </nav>
               </div>
    css:
    codice:
    .active{ background-color: red; }
    Qualcuno sa dirmi dove sbaglio?
    Grazie
    Destinato alla gioia, l'uomo si nutre di noia

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    3 buoni motivi

    1. quando si seleziona per attributo class si mette il '.' $(".livello2 ...") e non $("livello2 ...")

    2. gli href da te non iniziano con "/", ma con "./"

    3. l' url potrebbe variare in base a determinate querystring quindi l'ultimo segmento facendo solo split("/") potrebbe essere del tipo pagina.php?foo=bar&foo2=bar2

  5. #5
    grazie mille! ora funziona!!!
    Destinato alla gioia, l'uomo si nutre di noia

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.