Avatar billede EXstorm Praktikant
23. maj 2013 - 12:23 Der er 1 kommentar og
1 løsning

Current menuitem

Hej


Jeg har denne menu struktur

<ul class="top-menu">
          <li>
            <a href="/">Home</a>
          </li>   
<li>
        <a href="/builders">
          Buildstatus
        </a>
    </li>
</ul>

og breadcrumbs undermenu

<ul class="breadcrumbs-nav">
    <li>
        <a href="/">
          Home
        </a>
    </li>
    <li>
        <a href="/builders">
          Buildstatus
        </a>
    </li>
<li>
       
          #1            </li>
</ul>

Og script

$('.top-menu a').each(function(index) {
        if(this.href.trim() == window.location)
            $(this).parent().addClass("selected");
    });

som sætter selected på li hvis man bruger top menuen.

MEN hvis man er længere nede i strukturen så urlen ser ikke matcher href sker der ingenting.

Hvad skal jeg gøre?
Avatar billede EXstorm Praktikant
23. maj 2013 - 12:53 #1
Det som funktionen gør er at sætte en klasse på på menupunkt der svarer til urlen. Den virker bare ikke hvis urlen har en side mere på feks. /builders/#1

I dette tilfælde skal den søge urlen igennem, og hvis den har en streng der svarer til en a href i top-menu, får denne en klasse. Håber det giver mening.
Avatar billede EXstorm Praktikant
23. maj 2013 - 13:22 #2
Fandt ud af det

function setCurrentItem() {
        var path = window.location.pathname.split("\/");
       
        $('.top-menu a').each(function(index) {
            var thishref = this.href.split("\/");
            if(thishref[thishref.length-1].trim().toLowerCase() == path[1].trim().toLowerCase())
                $(this).parent().addClass("selected");
        });
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester