View Single Post
Staro 19.09.2011., 16:44   #18
sinisa1989
Bazinga
Moj komp
 
sinisa1989's Avatar
 
Datum registracije: Nov 2007
Lokacija: Križevci
Postovi: 3,932
Citiraj:
Autor zwer Pregled postova
Za ovaj dio o aktivnoj stranici, pretpostavimo da imas div sa identifikatorom nav i u njemu linkove u tagu a... modificiraj ako si radio sa UL/OL ili slicno...

Code:
function setActive() {
  aObj = document.getElementById('nav').getElementsByTagName('a');
  for(i=0;i<aObj.length;i++) {
    if(document.location.href.indexOf(aObj[i].href)>=0) {
      aObj[i].className='active';
    }
  }
}
Dakle to ukratko dohvati div sa identifikatorom nav, pa onda sve tagove a, izvrti ih u petlji i doda class active ako je to trenutna stranica.

I onda samo dodas u script tag na kraju dokumenta (tako da se okine kad se cijeli page ucita):

Code:
window.onload = setActive;
Sto se mijenjanja u razlicite boje tice, ne da mi se to pisat, ali princip je slican. Kazes javascriptu da na hover misa iznad taga dohvati innerHTML linka (znaci npr. imas <a class="navlink" href="http://www.dot.com/page1/"> PAGE 1 </a> ) - u ovom slucaju ce to bit tekst PAGE 1, i onda napravis switch case spiku da za svaki link u meniju promjenis klasu u neku drugu, ovisno o boji... npr. this->className = blue za PAGE 1, red za PAGE 2 i slicno... Ne sjecam se tocne sintakse, znam da je u jQueryu nesto u djiru addClass("class1 class2");
Ovo što si ti napisao radi kako treba, ali postoji jedan problem. Jedan link mi već ima klasu otprije. Pa mi onda ova funkcija izbriše već postojeću klasu. Pokušao sam ovo, ali ne radi.
Code:
function setActive() 
{
    aObj = document.getElementById('nav').getElementsByTagName('a');
    for(i=0;i<aObj.length;i++) 
    {
        if(document.location.href.indexOf(aObj[i].href)>=0) 
        {
            if(aObj.className=='up-last')
            {
                aObj[i].className='active up-last';
            }
            else
            {
                aObj[i].className='active';
            }
        }
    }
}
Pretpostavljam da je negdje greška u sintaksi jer ne znam javascript.
__________________
The best place to hide a dead body
is page 2 of Google search results.
sinisa1989 je offline   Reply With Quote