Autor Zpráva
gregi
Profil *
Ahoj.
Mám následující javascript:
var next=2;
function Prechod(){
		setTimeout("zmenit("+next+")",1000);
		next++;
		Prechod();
}


Chtěl bych postupně volat funkci zmenit, ale následující funkce mi nefunguje. Resp. funguje, ale s tim, že se zavolá automaticky poslední zmenit. Ještě tam potom budu dělat podmínky že když je next==5, tak že se rovná 1. Ale nejdřív potřebuju zjistit, proč mi nefunguje tento zápis. Díky za pomoc
Jan Tvrdík
Profil
function Prechod() {
	zmenit(1);
}

function zmenit(n) {
	// Kód funkce změnit
	// ...
	
	next = n + 1;
	setTimeout("zmenit(" + next + ")", 1000);
}


nebo ještě lépe
var n = 1;

window.setInterval(dalsi, 1000);

function dalsi() {
	// Změní obrázek na další
	// ...
	
	n++;
}
gregi
Profil *
Nakonec jsem to vyřešil takto.
var Odpocet=1;
function Prechod() {
       if (0==Odpocet) 
	// Co sem ale?
	    else {
          Odpocet++;
		  zmenit(Odpocet);
          setTimeout("Prechod()", 1000);
          }
}

Nevim co dosadit pokud se Odpocet rovná 0. Zkoušel jsem Odpocet=1 a znovu zavoalt Prechod, ale to nefunguje. Nevíte čim to je?
Jan Tvrdík
Profil
gregi:
Nevíte čim to je?
Víme. Akorát nechápu, čeho chceš dosáhnout.

var n = 1;
var limit = 5;

interval = window.setInterval(dalsi, 1000);

function dalsi() {
    // Změní obrázek na další
    document.getElementsByTagName('img')[0].src = n + '.jpg';
    
    n++;

    if (n == limit) window.clearInterval(interval);
}
gregi
Profil *
Chci volat funkci zmenit("cislo");, počínaje 2 a konče 5. Následně aby to začalo od 1. Tedy aby se zavolala funkce zmenit(1), 5 vteřin pauza, poté zmenit(2), pauza a tak dále. A aby se to opakovalo stále dokola.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: