Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

Einfache Jquery if/else Abfrage

Fragen zum Thema JavaScript können hier gestellt werden

Moderatoren: Basti, Guillermo, Ingo

Einfache Jquery if/else Abfrage

Beitragvon Patchie am 12.12.2011, 11:53

Ich habe ein Problem mit JQuery.
Zusatzinformationen sollen, mit Klick auf einen Link, angezeigt werden oder verschwinden.
Verschwinden lassen geht doch ich kann es nciht wieder erscheinen lassen. Erkennt das Ding die gesetzte Variable nicht?
"var zeigen = false" in der ersten if-Abfrage
Code: Alles auswählen
<script type="text/javascript">

      $(document).ready(function(){

         var zeigen = true;

         if (zeigen == true) {
            $("p").click(function() {
               $("#test").hide("normal")
               var zeigen = false;
            });
         }
         else if( zeigen == false) {
            $("p").click(function() {
               $("#test").show("normal")                  
            })
         }
            
      });                   
</script>

und das html

[code]
<p>Stellplatzinformationen - Für mehr Informationen hier klicken</p>
<p id="test"> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et
</p>
[/code]

EDIT
Hab das rausgefunden:
[code]
$("p").click(function () {
            $("#test").toggle("fast");
         });

Na gut. "toggle" scheint hier das Synonym für "Anzeigen/Wegblenden"-pro KLick zu sein. Aber wie kann ich dann z.B. die Farbeie von meinem Text ändern? Oder den Text selbst mit append? Dafür bauche ich doch if/else?
toggle hilft mir nur sehr bedingt weiter.
Patchie
Mitglied
 
Beiträge: 263
Registriert: 18.06.2008, 17:22
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Einfache Jquery if/else Abfrage

Beitragvon Guillermo am 12.12.2011, 20:19

Hi Patchie,

dein Problem ist, dass der Inhalt der Funktion ready genau einmal ausgeführt wird. Du deklarierst und initalisierst die Variable "zeigen", die ist true, gut. Dann schaust du ist zeigen true? Ja --> Dann sagst du okay wenn du auf "p" clickst, verstecke des Element "test". Ab diesem Zeitpunkt wird bei jedem Click auf "p" die Funktion hide ausgeführt (und die Variable zeigen auf false gesetzt). Der else-if Zweig wird nicht ausgeführt, auch bei einem Klick nicht.
Besser wäre es die hide(), show()-Methoden und die Verzweigung in das click-Event zu nehmen.
Richtiger wäre:
Code: Alles auswählen
zeigen = true; //Initialisieren (global!) und zuweisen

$(document).ready(function() {
   $("p").click(function() {
      if(zeigen == true) {
         $("#test").hide("normal");
         zeigen = false; //Reine Zuweisung!
      } else {
         $("#test").show("normal");
         zeigen = true; //Reine Zuweisung!
      }
   });
});


Apropos:
Das Schlüsselwort var verwendet man nur um lokale(!) Variablen (lokal bedeutet dass sie nur in bestimmten Bereichen gültig sind, im allgemeinen immer zwischen zwei geschweiften Klammern. Lässt man das Schlüsselwort var weg ist die Variable global, also im ganzen Skript adressierbar) zu initialisieren. Wenn du der Variablen einen neuen Wert zuweisen willst brauchst du es nicht mehr, das siehst du auch an dem Beispiel dass ich dir geschrieben habe.

Grüße,
Guillermo
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Moderator
 
Beiträge: 1093
Registriert: 01.10.2007, 18:18
Wohnort: Bayern

Re: Einfache Jquery if/else Abfrage

Beitragvon Patchie am 13.12.2011, 13:30

:) danke :thumbsup:
Is hat was anderes wenn man von php zu jquery switched und kaum Ahnung davon hat :roll:
Patchie
Mitglied
 
Beiträge: 263
Registriert: 18.06.2008, 17:22


Zurück zu JavaScript

Wer ist online?

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