A setTimeout () egyenlő a delay () függvénnyel?
Ha nem, akkor setTimeout()-al meg lehet oldani azt, hogy ha van egy változóm egy függvényben aminek az értéke false és azt akarom hogy 1 másodperc múlva váltsa át true-ra, de közben a függvényben a mögötte lévő utasítások végrehajtódjanak? (Tehát azok menjenek, de egy másodperc múlva a változó legyen true)
pl.: Valamire kattintok és azt szeretném hogy, amíg nem hajtódtak végre a click() function-jában lévő utasítások ne reagáljon az újrakattintásra.
Ha igen, akkor az előbbieket meg lehet valahogy valósítani?
Bármilyen megoldás jó lenne előre is köszönöm(:
A setTimeout aszinkron, azonban, mivel a JS nem multithreaded környezet, amíg a "főkód" fut, a beütemezett kódrészleted nem fog lefutni. Emiatt kénytelen leszel mindent aszinkron módon megírni.
Ugyanakkor, ahogyan az előző válaszoló is megemlítette, az általad említett funkcionalitást nem jó ötlet idő függvényében korlátozni.
Az onClick callbacked (sacc/kb, nem mennék most bele a kódminőséget érintő részletekbe) beállíthatja a disabled tulajdonságot, majd a feladat végeztével eltávolíthatja. Persze, a helyzet ennél lehet messze bonyolultabb is, illetve nem árt a magának a konkrét handlernek a lefutását is tiltani/engedélyezni egyúttal. Az alaptézis azonban valahol ekörül mozog: explicit blokkolod az eventet, amíg el nem végezted a feladatot.
$("#myButton").click(function() {
$(this).attr("disabled", true);
doWhateverYouWant($(this));
$(this).removeAttr("disabled");
});
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!