Christian: Zeitverzögert ausführen - settimeout klappt nicht

Hallo zusammen,

ich habe mir ein Script für eine dynamische Bilderslideshow im Netz gesucht und es in meine Seite eingefügt. (Dieses hier: http://www.dynamicdrive.com/dynamicindex14/fadeinslideshow.htm) Dieses Script unterstützt mehrere Slideshows auf einer Seite, ich habe zum Beispiel vier Slideshows nebeneinander platziert. Aufgerufen werden die jeweils mit dem folgenden Befehl:

<script type="text/javascript">
new fadeshow(fadeimages, 140, 225, 0, 3000, 1, "R")
</script>

<script type="text/javascript">
new fadeshow(fadeimages2, 140, 225, 0, 3000, 1, "R")
</script>

u.s.w. bis zum 4.

Meine Frage: Wie kann ich diese vier Slideshows minimal zeitversetzt ausführen lassen, so dass sich ein kleiner Effekt ergibt, dass der Bildwechsel zunächst beim ganz linken Bild stattfindet, dann beim 2. daneben, dann beim 3., dann beim 4., alles recht schnell hintereinander, nur eben nicht alle gleichzeitig wie es jetzt der Fal ist. Ich habe hier gesucht und den settimeout Befehl gefunden. Mein Versuch ihn einzubinden wie beschrieben sorgte allerdings dafür, dass die seite nicht mehr geladen werden konnte. Es sah dann so aus:

<script type="text/javascript">
window.setTimeout("new fadeshow(fadeimages, 140, 225, 0, 3000, 1, "R")", 500);
</script>

HAb ich da einfach nur was falsch gemacht, oder geht der settimeout in diesem Zusammenhang nicht? Wenn letzteres, gibt es eine Alternative?

Viele Grüße,
Christian

  1. hi,

    window.setTimeout("new fadeshow(fadeimages, 140, 225, 0, 3000, 1, "R")", 500);

    HAb ich da einfach nur was falsch gemacht

    Schau dir an, wo dein String, den du als erstes Argument an setTimeout übergibst, beginnt - und wo er wieder endet.

    http://de.selfhtml.org/javascript/sprache/notationen.htm#zeichenketten

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi,

      danke schonmal für die Antwort. ich hab das Problem erkannt und beseitigt. Der Code sah anschließend so aus:

      <script type='text/javascript'>
      window.setTimeout("new fadeshow(fadeimages2, 145, 100, 0, 3000, 0, '')", 500)
      </script>

      Obwohl der String an setTimeout nun vollständig übergeben werden müsste, wird die Seite weiterhin nicht angezeigt, bleibt beim Scriptaufruf hängen. Wenn ich den Befehl genauso wie er oben steht ohne setTimeout stehen lasse, funktioniert es tadellos.

      Könnte es etwas damit zu tun haben, dass dort "new fadeshow..."steht?  Der Befehl new ruft ja eine weitere Instanz der Funmktion fadeshow aus, wenn ich das im Tutorial richtig verstanden habe, während setTimeout vielleicht direkt den Namen einer Funktion erwartet? ODer sehe ich das falsch?

      Viele Grüße,
      Christian

      1. Obwohl der String an setTimeout nun vollständig übergeben werden müsste, wird die Seite weiterhin nicht angezeigt, bleibt beim Scriptaufruf hängen.

        Was heißt er bleibt hängen?
        Wie lautet die Fehlermeldung? Was hast du getan um diese zu vermeiden?

        Könnte es etwas damit zu tun ...

        Anstatt wild zu spekulieren solltest du systematisch vorgehen s.o.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
        1. Was heißt er bleibt hängen?

          Das heißt, dass die Seite bis zu der Stelle aufgebaut wird, wo der setTimteout Befehl gelden werden müsste, also ca. bis zur Hälfte. Alles was danach kommt, wird nicht mehr geladen, inklusive dem Javascript, das durch setTimeout verzögert ausgeführt werden soll. Eine Fehlermeldung gibt es nicht, unten links steht in der Statusleiste "Fertig".

          Anstatt wild zu spekulieren solltest du systematisch vorgehen s.o.

          Meine Spekulationen sollten einfach verdeutlichen, dass ich mich schon recht intensiv damit auseinander gesetzt habe und nach Ursachen für den Fehler gesucht habe und hier nicht erwarte, Hilfe zu bekommen ohne selbst mein Köpfchen anzustrengen... ;-)

          VG, Christian

          1. Was heißt er bleibt hängen?

            Das heißt, dass die Seite bis zu der Stelle aufgebaut wird, wo der setTimteout Befehl gelden werden müsste, also ca. bis zur Hälfte. Alles was danach kommt, wird nicht mehr geladen, inklusive dem Javascript, das durch setTimeout verzögert ausgeführt werden soll. Eine Fehlermeldung gibt es nicht, unten links steht in der Statusleiste "Fertig".

            Die Fehlerkonsole ist also leer?

            Anstatt wild zu spekulieren solltest du systematisch vorgehen s.o.

            Meine Spekulationen sollten einfach verdeutlichen, dass ich mich schon recht intensiv damit auseinander gesetzt habe und nach Ursachen für den Fehler gesucht habe und hier nicht erwarte, Hilfe zu bekommen ohne selbst mein Köpfchen anzustrengen... ;-)

            Nur erzählst du uns nichts von deinen Versuchen.

            Struppi.

            --
            Javascript ist toll (Perl auch!)