JQuery. For ciklus. Miért ezt csinálja?
Van 10 db divem, amiknek PHP-ban generált egyedi id-jük van. jQuery-ben erre az id-ra hivatkozva, egy for ciklussal ki szeretném őket jelölni egyesével x mp-nyi különbséggel, de valamiért nem úgy működik, ahogy kéne.
for (var i=0; i<10; i++)
{
setTimeout(function(){
$('#id'+i).addClass('kijelolt');
},2000);
}
Ennek nem azt kéne csinálnia, hogy 2 másodpercenként minden div-re egymás után ráteszi a megadott class-t? Mert nem ezt csinálja. Végigmegy a ciklus, eléri az utolsó elemet, és csak akkor adja hozzá a class-t, és csak az utolsó elemhez. Miért? Hol van a hiba a kódban?
A segítséget előre is köszönöm!
A probléma alapvetően Javascript-beli.
A gondot az okozza, hogy a for ciklus nem várja meg, míg a függvény végrehajtódik, így csak a legutolsó hajtódik végre.
Elvileg van rá megoldás:
így nézne ki a jelenlegi problémával:
bár - ha már van - inkább jobban preferálnám erre a célra a setInterval-t:
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!