PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/)
-   -   for-Schleife und setTimeout (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/51392-for-schleife-und-settimeout.html)

Wantonio 03-03-2005 17:44

for-Schleife und setTimeout
 
Hallo!
Ich möchte gerne folgendes Javascript als for-Schleife schreiben:

Code:

<SCRIPT LANGUAGE="JavaScript">
var MeineURLs = new Array;
MeineURLs[0] = 'http://www.yahoo.de';
MeineURLs[1] = 'http://www.fireball.de';
MeineURLs[2] = 'http://www.n24.de';
MeineURLs[3] = 'http://www.ard.de';
var MeineZufallszeiten = new Array;
MeineZufallszeiten[0] = 5000;
MeineZufallszeiten[1] = 10000;
MeineZufallszeiten[2] = 2000;
MeineZufallszeiten[3] = 6000;

function eins(URL) {
        document.getElementById("textfeld").innerHTML = URL;
          setTimeout("zwei(MeineURLs[1])", MeineZufallszeiten[1]);
}
function zwei(URL) {
        document.getElementById("textfeld").innerHTML = URL;
          setTimeout("drei(MeineURLs[2])", MeineZufallszeiten[2]);
}
function drei(URL) {
        document.getElementById("textfeld").innerHTML = URL;
          setTimeout("vier(MeineURLs[3])", MeineZufallszeiten[3]);
}
function vier(URL) {
        document.getElementById("textfeld").innerHTML = URL;
          ende();
}
function ende() {
                document.getElementById("textfeld").innerHTML = 'Alle Funktionen wurden ausgeführt!';
}
function play() {
        document.getElementById("textfeld").innerHTML = 'Funktion play wird ausgeführt!';
          setTimeout("eins(MeineURLs[0])", MeineZufallszeiten[0]);
}
</SCRIPT>

Ich benötige die for-Schleife, da die Arrays später dynamisch aus einer Datenbank erzeugt werden. Ich habe es schon mehrere Male probiert, allerdings "springt" er meistens direkt zur letzten URL ohne das setTimeout zu beachten.
Für Tipps wie ich dieses Problem lösen kann bin ich sehr dankbar!
Viele Grüße von Jan

Wantonio 03-03-2005 18:17

Manchmal geht es doch einfacher als man denkt:

Code:

<script language ="JavaScript">
var MeineURLs = new Array;
MeineURLs[0] = 'http://www.yahoo.de';
MeineURLs[1] = 'http://www.fireball.de';
MeineURLs[2] = 'http://www.n24.de';
MeineURLs[3] = 'http://www.ard.de';
var MeineZufallszeiten = new Array;
MeineZufallszeiten[0] = 5000;
MeineZufallszeiten[1] = 8000;
MeineZufallszeiten[2] = 4000;
MeineZufallszeiten[3] = 6000;
i=0;
function play() {
if(i<MeineURLs.length) {
        document.getElementById("textfeld").innerHTML = MeineURLs[i];
          i = i + 1;
          window.setTimeout("play()",MeineZufallszeiten[i]);}
}
</SCRIPT>

Trotzdem würde mich interessieren, warum das nicht in einer for-Schleife geht...


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:00 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG