2013-08-13 16 views
7

So che questa domanda si presenta molto, ma non riesco a capire come farlo usando i post già commentati.Come aggiungere la classe attiva ai collegamenti ipertestuali codeign?

Ho un'intestazione con collegamenti di navigazione. Vorrei aggiungere class="active" al link che è attivo al momento.

Come posso fare questo se ho la seguente navigazione?

<nav> 
    <ul id="main_nav"> 
     <li class="home"> 
      <a href="search"> 
       <i class="icon-search"></i> 
       <span>BEDRIJF ZOEKEN</span> 
      </a> 
     </li> 
     <li class="categorie"> 
      <a href="categorieen/all"> 
       <i class="icon-list-ul"></i> 
        <span>CATEGORIE</span> 
      </a> 
     </li> 
     <li class="aanbieding"> 
      <a href="aanbiedingen"> 
       <i class="icon-shopping-cart"></i> 
        <span>AANBIEDING</span> 
      </a> 
     </li> 
     <li class="vacature"> 
      <a href="vacatures"> 
       <i class="icon-copy"></i> 
       <span>VACATURE</span> 
      </a> 
     </li> 
     <li class="agenda"> 
      <a href="agenda"> 
       <i class="icon-calendar"></i> 
       <span>AGENDA</span> 
      </a> 
     </li> 
     <li class="contact"> 
      <a href="contact"> 
       <i class="icon-envelope"></i> 
       <span>CONTACT</span> 
      </a> 
     </li> 
    </ul> 
</nav> 

Ho provato questo, ma non ha funzionato:

<script> 
$(function() { 
    var href = $(this).find('a').attr('href'); 
    alert(window.location.pathname) 
    if (href === window.location.pathname) { 
     $(this).addClass('active'); 
    } 
}); 
</script> 

Forse c'è un modo Codeigniter-ish meglio?

risposta

13

prova questo.non credo che sia necessario javascript o jquery.

Se si utilizza il codeign, è possibile utilizzare la classe URI.

<li class="home"> 
    <a class="<?php if($this->uri->segment(1)=="search"){echo "active";}?>" href="<?=base_url('search')?>"> 
     <i class="icon-search"></i> 
     <span>BEDRIJF ZOEKEN</span> 
    </a> 
</li> 

per favore fatemi sapere se dovete affrontare qualsiasi problema

+0

che funziona immagino, mi permetta di primo sguardo se funziona per altri collegamenti: D –

+0

Sì, questo funziona: D grazie: D –

+0

versione più breve: ' uri-> segment (1) == "search"))? "attivo": ""?> ' –

0
if (href === window.location.pathname) { 
    $('a[href='+ href +']').addClass('active'); 
} 
+1

non funziona :( –

+0

Potete vedere il sito qui: http: //kees.een-site-bouwen.nl/search Ho appena indirizzato a/search per vedere se ha funzionato. il window.location.pathname è/search quindi non so perché non funzioni. –

+0

@KeesSonnema fammi controllare – som

0

provare questo:

<a class="<?=(current_url()==base_url('search')) ? 'active':''?>" href="<?=base_url('search')?>"> 
5

ho creato un aiutante e salvato nella directory helper denominata come "menu_helper.php":

Quindi in config/autoload.php aggiungo "menu" come aiuto nella riga 91.

L'ultimo passo è quello di mettere il codice per la stampa della classe "attivo" quando si accede alla pagina (per esempio pagina di login):

<li class="<?php echo activate_menu('login'); ?>">  
    <?php echo anchor('login', 'Login'); ?> 
</li> 
+0

Questo merita di essere la risposta, soluzione molto elegante. Bel lavoro! –

+0

Funziona perfettamente - grazie! – Jordan

Problemi correlati