Autor Zpráva
Tencosepta
Profil *
Dobrý večer,
nezná někdo náhodou způsob jak vypnout časovač (var cas = setTimeout(test,10);) v první funkci pomocí jiné funkce? Vím, že je to lokální proměnná, takže k ní lze přistupovat pouze z té funkce(podle toho co jsem četl). Případně dá se nějak ta proměnná definovat globálně aniž by se provedla a pak ji volat nejdřív v jedné a v druhé funkci zastavit?
Děkuji za pomoc už 2 dny si s tím hraju(zkoušel sem i return false, ale pak mi nešla funce znovu zavolat nevím proč potřebuji ji použít vícekrát...)
Str4wberry
Profil
Časovač se dá vypnout třeba pomocí clearTimeout/clearInterval: Odpočítávání času v HTML

Druhá možnost je mít někde proměnnou, jejíž hodnota se bude ve funkci časovače kontrolovat. Z jiné funkce se například nastaví na false a při dalším spuštění se nic neudělá.

Problém s přístupem k proměnným můžete mít kvůli nepochopení scope.
Tencosepta
Profil *
vypnutí časovače znám :) to byla první věc co jsem zkoušel... otázka ale zní jak ho vypnout z funkce ve které neni zadán... právěže se obávám, že jsem pochopil scope... Funguje to tak, že mám proměnnou. V první funkci ji přičítám. V druhé odčítám. Takže aby se to neseklo potřebuju vypnout přičítání a pak zas naopak. A asi to nepude vypnout spuštěním té druhé funkce jak tak nad tím přemýšlím. (to jsem taky zkoušel... přišlo mi to zvláštní, ale jakmile jsem vypnul funkci nastavením na false podruhe mi nešla zapnout - byl nutný refresh...)


Už asi vím :) když se to tak všechno vyjmenuje co všechno se nedá člověku to občas dojede :D řešení by bylo udělat z toho pouze jednu funkci. Tím pádem se nebudou nikdy překrývat a vyždycky funkcí předat ta operace co se dělá...
Str4wberry
Profil
Já to myslel nějak takto (s proměnnou): Živá ukázka

Nebo takto (s clearInterval): Živá ukázka

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:

0