Steffen: if-schleife

Hallo,

ich möchte, dass wenn man auf ein bild klickt, ein neues erscheint und durch erneutes klicken, wieder eins usw.
das habe ich bisher, aber leider funktioniert es nicht, wo ist der fehler?

<script language="javascript">
function bildwechseln () {
 var Bild = document.getElementById('Bild');
 if (Bild.src && Bild.src == "Bilder/steffen_03.gif"){
  Bild.src = "Bilder/steffen_032.gif";}
 else if (Bild.src && Bild.src == "Bilder/steffen_032.gif"){
  Bild.src = "Bilder/steffen_03.gif";}
}
</script>
....
<a href="#" onclick="bildwechseln"><img src="Bilder/steffen_03.gif" width="113" height="238" Id="Bild" name="Bild" alt="" border=0></a>

besten dank!

steffen

  1. n'Abend,

    mal abgesehen von der falschen Terminologie (mit if bildet man keine Schleifen, höchstens Verzweigungen) ...

    wo ist der fehler?

    Zum Beispiel hier:

    <script language="javascript">

    Das vorgeschriebene type-Attribut fehlt. Das hat allerdings nichts mit deinem Problem zu tun; es ist nur ein formaler Fehler.
    Aber das da ...

    <a href="#" onclick="bildwechseln">

    ist sinnfrei. Vielleicht möchtest du im onclick-Handler nicht nur abfragen, ob das Objekt/die Variable/die Funktion bildwechseln existiert und das Ergebnis dann doch ignorieren, sondern die Funktion auch tatsächlich aufrufen.

    So long,
     Martin

    --
    Bitte komme jemand mit einem *g* zum Wochenende, damit nicht über mich gelacht wird.
      (Gunnar Bittersmann)
    1. gudn tach!

      mal abgesehen von der falschen Terminologie (mit if bildet man keine Schleifen, höchstens Verzweigungen) ...

      eigentlich ack, aber man kann sich's auch schwer machen... ;-)

      prost
      seth

  2. Hallo Steffen
    das müsste auch einfacher gehen, wenn die Bilder alle
    durchnummeriert wären. Müsste man nicht jedes Bild
    reinschreiben.

    In deinem Beispiel:
    Wenn  Bilder/steffen_03.gif dann - dann Bilder/steffen_032.gif

    Aber gut wenns denn so sein soll:

    <p>

    ++++++++++++++++++++++++++++++++++++++

      
    <script type="text/javascript">  
    <!--  
    // by J.P.  
    function nextpic(path)  
    {  
    var arx = new Array(  
    'http://eur.i1.yimg.com/eur.yimg.com/i/de/hp/de2lo.gif',  
    'http://www.google.de/intl/de_de/images/logo.gif',  
    'http://src.selfhtml.org/logo.gif'  
    );  
      
    for(i=0; i<arx.length; i++){if(arx[i]==path){i++;newsrc = arx[i]; break;}}  
      
    if(!newsrc){newsrc=arx[0];}  
      
    return newsrc;  
    }  
      
    //-->  
    </script>  
    
    

    <img src="http://www.google.de/intl/de_de/images/logo.gif" onclick="this.src=nextpic(this.src);">

    </p>

    ++++++++++++++++++++++++++++++

    Vielleicht auch was für dich:
    http://de.selfhtml.org/dhtml/beispiele/bilderbuch.htm

  3. hallo Steffen,

    ich möchte, dass wenn man auf ein bild klickt, ein neues erscheint und durch erneutes klicken, wieder eins usw.

    Das ist ein bißchen schwierig.

    das habe ich bisher, aber leider funktioniert es nicht, wo ist der fehler?

    Ein paar durchaus wichtige, aber letzten Endes deine Frage nicht beantwortende Hinweise hat dir Der Martin bereits gegeben. Das Problem ist, daß du irgendwie "erneutes Klicken" definieren mußt.

    if ist eine "bedingte Anweisung". Das heißt, du machst das, was in einer solchen Anweisung steht, von bestimmten Bedingungen - die du selber festlegen kannst - abhängig. Deine Bedingung lautet nun, wenn ich dich recht verstanden habe, "neues Bild laden".

    function bildwechseln () {
    var Bild = document.getElementById('Bild');
    if (Bild.src && Bild.src == "Bilder/steffen_03.gif"){
      Bild.src = "Bilder/steffen_032.gif";}
    else if (Bild.src && Bild.src == "Bilder/steffen_032.gif"){
      Bild.src = "Bilder/steffen_03.gif";}
    }

    Mal abgesehen davon, daß es hier mit
    if (Bild.src && Bild.src == "Bilder/steffen_03.gif")
    wegen des "&&" noch eine unerfüllbare Bedingung gibt, ist deine Funktion nur darauf aus, zwischen zwei Angeboten (steffen_03.gif und steffen_032.gif) zu entscheiden. Da gibts also nicht viel, was "alternieren" kann.

    Du mußt vermutlich zuerst dafür sorgen, daß _irgendwie_ die Gesamtzahl der möglichen Bilder erfaßt wird. Das würde ich so konzipieren, daß zuerst eine Funktion definert wird, in der für "bild.srcx" die jeweiligen Bilder als variableninhalte definiert werden. Diese Funktion läßt du dann von deiner Funktion "bildwechseln" aufrufen und legst mit
      for (var i = 10; i <= [zahl]; i++)
    fest, welche Bildnummer ausgewählt werden soll.

    for ist tatsächlich eine Schleife. "if" ist das nicht.

    Ich habe das jetzt nicht getestet, aber ich wollte dir zeigen, wie ich an die Lösung einer solchen Aufgabe herangehen würde.

    Du kannst auch deine Bildnummern erst in einen Array schreiben und den dann eben mit for abklappern - für die Variable i könntest du dann einen Zufallswert festlegen.

    Ein Nachsatz noch: muß das unbedingt Javascript sein?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Auweia Christph,
      du machst es aber kompliziert ;-)
      siehe mein Beispiel bei den Antworten.

      1. pffffff,

        du machst es aber kompliziert ;-)

        Achwas ;-)

        siehe mein Beispiel bei den Antworten.

        Naja, die Idee mit dem Array teilen wir ja beide ...

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|