
Jak spustit funkci v JS
Ahoj, můžu nějak jednoduše spustit funkci pokud na buton jen nekliknu ale budu ho držet? Díky
Ahoj, můžu nějak jednoduše spustit funkci pokud na buton jen nekliknu ale budu ho držet? Díky
Zpět do poradny Odpovědět na původní otázku Nahoru
Zavěsíš ji na událost onmousedown místo onclick.
A když potřebuji u stejného tlačítka klasickým stiskem zavolat jednu funkci a dlouhým stiskem (s držením > 1s) zavolat druhou funkci?
Funkce můžeš zavěsit klidně na více událostí najednou.
Tak jsem to zkusil ale nefunguje to, vždy se provede onmousedown. I když jen kliknu.
Ale to je správně. Klik vyvolá události v tomhle pořadí:
1. onmousedown
2. onmouseup
3. onclick
A co jsi tím chtěl říct? Jak to mám tedy udělat?
Pokud mezi onmousedown a onmouseup uplyne alespoň sekunda, provedeš jednu funkci. Pokud méně, provedeš druhou. V čem vidíš problém?
Nevím jestli jsem tě pochopil, myslíš takto?
To já nevím. Dělá to to, co potřebuješ?
Použít onmousedown a onclick zároveň není v tomhle případě nejspíš potřeba.
no není to stoprocentní, někdy se spustí dlouhý stisk i když dlouhý nebyl.
Jak to? Potřebuji na tom tlačítku rozlišit dlouhý i krátký stisk.
Vyhodnocuješ, jestli se to stalo ve stejné sekundě a ne až po sekundě.
Na určení dlouhého a krátkého přece obě události nepotřebuješ. onmouseup se vždy zavolá před onclick.
Vyhodnocuji přece jestli je sekunda z dd.getSeconds() vetší (>) ne sekunda v d.getSeconds(), nebo to dělá něco jiného?
Chápu..
O kolik se liší časy 21:48:51.999 a 21:48:52.001? O dvě milisekundy. Ale getSeconds u prvního vrátí 51 a u druhého 52.
Souhlas, ale za normálních podmínek by to mohlo stačit, jenže 2 milisekundy trvá možná jen samotný klik, proto to zlobí.
Mohlo by to tedy být takto?
Nepochopil. Tak méně extrémní hodnoty.
O kolik se liší časy 21:48:51.8 a 21:48:52.2? O 400 milisekund - mnohem déle než běžný klik. Ale getSeconds u prvního vrátí 51 a u druhého 52.