Witam.
Jestem słaby jeśli chodzi i JS i mam mały problemik.
Jak przerobić ten skrypt aby działał z class, a nie id?
Skrypt pokazuje i ukrywa treść w zależności od wybranego linku.

Linki:
  1. <ul class="tabs">
  2. <li class="active"><a href="#tab-1" class="active">EUR</a></li>
  3. <li><a href="#tab-2">GBP</a></li>
  4. <li><a href="#tab-3">CHF</a></li>
  5. <li><a href="#tab-4">USD</a></li>
  6. </ul>


Treść do pokazania/schowania (tu jest do zmiany to id tzn. "tab-1" itd)
  1. <div id="tab-1" class="tab">
  2. <?php show('EUR', $connection, $template, $dotPHP); ?>
  3. </div>
  4. <div id="tab-2" class="tab">
  5. <?php show('GBP', $connection, $template, $dotPHP); ?>
  6. </div>
  7. <div id="tab-3" class="tab">
  8. <?php show('CHF', $connection, $template, $dotPHP); ?>
  9. </div>
  10. <div id="tab-4" class="tab">
  11. <?php show('USD', $connection, $template, $dotPHP); ?>
  12. </div>


Skrypt JS
  1. $(document).ready(function() {
  2. //dla każdego miejsca z tabami
  3. $('.tabs').each(function() {
  4. var $ul = $(this);
  5. var $li = $ul.children('li');
  6. //przy wejsciu na strone ukrywamy tresc tabow i pokazujemy tylko aktywny...
  7. $li.each(function() { //pętla po wszystkich tabach
  8. var $trescTaba = $($(this).children('a').attr('href')); //pobieramy blok o id pobranym z linka-taba
  9. if ($(this).hasClass('active')) { //jeżeli ten tab ma klasę aktywną
  10. $trescTaba.show(); //to pobrany przed chwilą blok pokazujemy
  11. } else {
  12. $trescTaba.hide(); //jeżeli takiej klasy nie ma to blok ukrywamy
  13. }
  14. });
  15.  
  16. //mały trik - gdy klikamy na tab, wtedy wykonujemy zdarzenie dla linka, który się w nim znajduje (dzieki temu możemy kliknąć na cały tab, a nie tylko na linka)
  17. $li.click(function() {$(this).children('a').click()});
  18. //po kliknięciu na link...
  19. $li.children('a').click(function() {
  20. //usuwamy z tabów klasę active
  21. $li.removeClass('active');
  22. //ukrywamy wszystkie taby
  23. $li.each(function() {
  24. $($(this).children('a').attr('href')).hide();
  25. });
  26. //ustawiamy klikniętemu tabowi klasę aktywną
  27. $(this).parent().addClass('active');
  28. $($(this).attr('href')).show();
  29. //nie chcemy wykonać domyślnej akcji dla linka
  30. return false;
  31. });
  32. });
  33. });


Problem rozwiązany!
Nie zauważyłem, że w linkach jest #tab-1, zmieniłem na .tab-1 i działa smile.gif