Wyświetlanie znaków ze stringu pojedynczo

0

Hej.

mam niemały problem z rozszyfrowaniem problemu. Mianowicie chodzi o proste zadanie, którego celem jest wypisanie na stronie wszystkich znaków danego stringu pojedynczo - znak po znaku, w jakimś ustalonym odstępie czasowym miedzy kolejnymi literami korzystając ponadto z metody setTimeout()

Aktualnie jestem na takim etapie i string jest niestety wyświetlany od razu w całości, a nie tak jak powinien domyślnie. Oto plik .js. Funkcja jeden() jest wywoływana w HTMLu onload

function jeden()
{
var i = 0;
var str = 'hello world';
function jeb()
{
var res = str.substr(i, 1);
document.getElementById("id").innerHTML += res;
setTimeout("jeb()", 100);
}
for (i = 0; i < str.length; i++)
{ 
jeb();
}
}
0

setTimeout sie w ogole nie odpala, powinno byc tak:

setTimeout(jeb(), 100);

ale jak to zrobisz to wylozysz aplikacje, bo ona zle dziala.

setTimeout , wywoluje akcje raz po okreslonym czasie, a tobie nie bedzie lepiej setInterval(), wtedy po dojechaniu do konca ciagu znakow zatrzymasz wywolywania??

ale jesli wymogiem jest uzycie setTimeout to wywoluj ja z parametrem, niech parametrem bedzie kolejny index znaku ze stringa. var i i var str trzymaj poza funkcja zeby byly dostepne z zewnatrz. i petle wywal, skup sie na wywolywaniu funkcji znak po znaku.

0

@szalonyfacet: już jego kod był lepszy, bo setTimeout był poprawny (jak pierwszy parametr jest stringiem to robi się na tym eval()),

Twoje wywołanie spowoduje co 100 ms wykonywanie wyniku funkcji jeb() (której wykonanie nastąpi jednokrotnie w momencie dotarcia kodu do setTimeout)

1 użytkowników online, w tym zalogowanych: 0, gości: 1