CSS zakładki

0

Witam,

na swojej stronie umieściłem kilka przycisków i zakładki w taki sposób, że strona index jest ładowana raz a przełączanie treści polega na ukrywaniu poszczególnych bloków w zależności od id.
<div id="glowna"></div><div id="zakladka1"></div>
Domyślnie wyświetla się zakładka główna, gdy klikne na button przełącza mi się na "zakladka1".

Problem polega na tym, że gdy wykonam jakąś czynność i przekieruję na stronę index.php#zakladka1 wyswietla mi się z powrotem glowna. W jaki sposób wyświetlać inną zakładkę nie klikając na przycisk ? A robiąc to poprzez link ?

Mam coś takiego: http://itporady.pl/files/preview/dynamiczne-zakladki-tabs-w-ajax
Wpisanie np. http://itporady.pl/files/preview/dynamiczne-zakladki-tabs-w-ajax#drupal nie przechodzi do zakładki drupal

Z góry dziękuję za poradę

0

Ale to Twoja strona co zalinkowałeś, czy to tylko jakiś przykład?

Jeżeli Twoja, ew identyczny kod:

if (window.addEventListener) { // normalne przegladarki
  window.addEventListener('load', zakladki, false);
} 
else if (window.attachEvent) { // IE
  window.attachEvent('onload', zakladki);
}

function zakladki() {
  var hash = window.location.hash;
  if (hash) { // jezeli hash w adresie
    var el = document.getElementById(hash);
    if (el) { // jezeli element istnieje to go wybieramy
      var elem = el.parentNode.firstChild; // zaczynamy od pierwszego dziecka rodzica elementu
      do {
        if (elem.nodeName.toUpperCase()=='DIV') { // jeżeli to div - czyli jedna z treści zakładki
          elem.style.display='none'; // ukryj element
        }
      }
      while (elem = elem.nextSibling); // dopoki jest jeszcze jakis element
      el.style.display = "block"; // pokazujemy element z hasha
    }
  }
}

Mógłbyś też dodać jakąś klasę do zakładek i wybierać wg klasy, albo skorzystać z dobrodziejstw querySelector, które raczej nie działa w IE8, ale i takie rozwiązanie podziała. Chyba, bo pisałem z palca i nie testowałem.

Edit: możesz też się pozbyć hasha z adresu na koniec, żeby ładnie wyglądało (w przykładzie hash się nie pokazuje) - ale w sumie utrudnia to zdobycie i przekazanie komuś linka do wersji z hashem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1