Problem mit jQuery

Fragen rund um PHP,HTML,CSS und MySQL

Problem mit jQuery

Beitragvon Tymo » 3. Apr 2011, 15:06

Ich habe folgenden Quelltext:
Code: Alles auswählen
<div class="show-hide-images">
   <span class="show"><a href="#gallery">Bilder zeigen</a></span>
   <span class="hide" style="display:none;"><a href="#gallery">Bilder verstecken</a></span>
</div>
<div id="gallery" class="content" style="display:none;">
   <ul>
      <li>
         <a href="bild1.jpg"><img src="bild1_thumb.jpg" alt="Bild" width="100" /></a>
      </li>
      <li>
         <a href="bild2.jpg"><img src="bild2.thumb.jpg" alt="Bild" width="100" /></a>
      </li>
   </ul>
</div>


Ich möchte gerne mit jQuery beim Klick auf "Bilder zeigen" die Klasse "content" einblenden, die Klasse "show" verstecken und die Klasse "hide" einblenden.
Das funktioniert auch so weit ganz gut. Leider habe ich in meinem Quelltext nicht nur eine Galerie, sondern mehrere. Klickt man jetzt auch "Bilder zeigen", blenden sich immer alle Galerien ein.

Der jQuery-Code dazu:
Code: Alles auswählen
$(document).ready(function() {

   $('.show a').click(function(event){
      $('.content').slideToggle('slow');
      $('.show-hide-images a').addClass('active');
      $('.hide').show('slow');
      $('.show').hide('slow');
   });
   $('.hide a').click(function(){
      $('.content').slideToggle('slow');
      $('.show-hide-images a').removeClass('active');
      $('.hide').hide('slow');
      $('.show').show('slow');
   });
   
});


Kann mir jemand helfen?
Tymo
 
Beiträge: 131
Registriert: 20. Nov 2006, 20:39

Re: Problem mit jQuery

Beitragvon jeandeluxe » 3. Apr 2011, 15:57

Tymo hat geschrieben:Ich habe folgenden Quelltext:Leider habe ich in meinem Quelltext nicht nur eine Galerie, sondern mehrere. Klickt man jetzt auch "Bilder zeigen", blenden sich immer alle Galerien ein.

Da du (identische) Klassen als Selektoren verwendest, ist das auch logisch.. du mußt die einzelnen Galerien für dein script unterscheidbar machen.

lg,
Jan
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Problem mit jQuery

Beitragvon Tymo » 3. Apr 2011, 16:22

jeandeluxe hat geschrieben:du mußt die einzelnen Galerien für dein script unterscheidbar machen


Och nö. Ich dachte das geht einfacher und mit weniger jQuery Code.
Tymo
 
Beiträge: 131
Registriert: 20. Nov 2006, 20:39

Re: Problem mit jQuery

Beitragvon jeandeluxe » 3. Apr 2011, 16:35

Tymo hat geschrieben:Och nö. Ich dachte das geht einfacher und mit weniger jQuery Code.


Das ist weder sonderlich kompliziert noch mit viel Code verbunden.. ;)

lg,
Jan
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Problem mit jQuery

Beitragvon Oliver.Kreischer » 3. Apr 2011, 17:00

Hi,

bin leider nicht am Rechner. .next ist dein Freund :-)

Einfach mal nach jquery und .next googlen.

LG
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Re: Problem mit jQuery

Beitragvon Ingo » 4. Apr 2011, 18:43

Code: Alles auswählen
<div id="gallery" class="content">
   <ul>
      <li>
         <a href="bild1.jpg"><img src="0001.jpg" alt="" /></a>
      </li>
      <li>
         <a href="bild2.jpg"><img src="0002.thumb.jpg" alt="" /></a>
      </li>
   </ul>
</div>
<script>
    $('body').delegate('.show-hide-images a', 'click', function (e) {
        e.preventDefault();
        $($(this).attr('href')).slideToggle('slow');
        $(this)
            .parent()
            .toggleClass('active')
            .end()
            .siblings()
            .show('slow')
            .end()
            .hide('slow');
    });
    $(function () {
        $('.content').each(function () {
            var $nav = $('<div class="show-hide-images"><a href="#' + $(this).attr('id') + '" class="show">Bilder zeigen</a><a href="#' + $(this).attr('id') + '" class="hide" style="display:none;">Bilder verstecken</a></div>');
            $(this).hide().before($nav);
        });
    });
</script>


"Bild" als Alternativtext - YMMD :mrgreen:
Ingo
 
Beiträge: 290
Registriert: 23. Jun 2010, 23:34


Zurück zu PHP/HTML/CSS/MySQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste