Předmět Autor Datum
Zavěsíš ji na událost onmousedown místo onclick.
Wikan 21.12.2019 07:05
Wikan
A když potřebuji u stejného tlačítka klasickým stiskem zavolat jednu funkci a dlouhým stiskem (s drž…
KKuba 21.12.2019 12:39
KKuba
Funkce můžeš zavěsit klidně na více událostí najednou.
Wikan 21.12.2019 12:41
Wikan
Super, díky moc.
KKuba 21.12.2019 12:47
KKuba
Tak jsem to zkusil ale nefunguje to, vždy se provede onmousedown. I když jen kliknu.
KKuba 21.12.2019 16:48
KKuba
Ale to je správně. Klik vyvolá události v tomhle pořadí: 1. onmousedown 2. onmouseup 3. onclick
Wikan 21.12.2019 16:57
Wikan
A co jsi tím chtěl říct? Jak to mám tedy udělat?
KKuba 21.12.2019 18:45
KKuba
Pokud mezi onmousedown a onmouseup uplyne alespoň sekunda, provedeš jednu funkci. Pokud méně, proved…
Wikan 21.12.2019 18:50
Wikan
Nevím jestli jsem tě pochopil, myslíš takto? document . body . innerHTML = '<button onmousedown="_o…
KKuba 21.12.2019 19:13
KKuba
To já nevím. Dělá to to, co potřebuješ? Použít onmousedown a onclick zároveň není v tomhle případě n…
Wikan 21.12.2019 19:22
Wikan
To já nevím. Dělá to to, co potřebuješ? no není to stoprocentní, někdy se spustí dlouhý stisk i kdy…
KKuba 21.12.2019 19:32
KKuba
Vyhodnocuješ, jestli se to stalo ve stejné sekundě a ne až po sekundě. Na určení dlouhého a krátkého…
Wikan 21.12.2019 19:36
Wikan
Vyhodnocuji přece jestli je sekunda z dd.getSeconds() vetší (>) ne sekunda v d.getSeconds(), nebo to…
KKuba 21.12.2019 19:59
KKuba
O kolik se liší časy 21:48:51.999 a 21:48:52.001? O dvě milisekundy. Ale getSeconds u prvního vrátí…
Wikan 21.12.2019 21:50
Wikan
Souhlas, ale za normálních podmínek by to mohlo stačit, jenže 2 milisekundy trvá možná jen samotný k…
KKuba 21.12.2019 22:53
KKuba
Nepochopil. Tak méně extrémní hodnoty. O kolik se liší časy 21:48:51.8 a 21:48:52.2? O 400 milisekun… poslední
Wikan 21.12.2019 22:59
Wikan
Stisk je stisk. Obávám se, že rozlišovat podle délky stisknutí nelze. K čemu to vlastně potřebuješ?
host 21.12.2019 13:06
host
Potřebuji přiřadit jednomu tlačítku dvě různé funkce. Pokud jen kliknu bude se navyšovat proměnná o…
KKuba 21.12.2019 16:49
KKuba

Nevím jestli jsem tě pochopil, myslíš takto?

document . body . innerHTML = '<button onmousedown="_onmousedown_()" onmouseup="_onmouseup_()" onclick="_onclick_()">SET</button>';

var d;
var dd;

function _onmousedown_ () { d = new Date(); }

function _onmouseup_ () {
        dd = new Date();
        if ( dd.getSeconds() > d.getSeconds() ) console.log('dlouhý stisk - pracuji');
        else console.log('nedělám nic');
        
}
function _onclick_ () {

        if ( dd.getSeconds() > d.getSeconds() ) console.log('nedělám nic');
        else console.log('krátký stisk - pracuji');
}

To já nevím. Dělá to to, co potřebuješ?

no není to stoprocentní, někdy se spustí dlouhý stisk i když dlouhý nebyl.

Použít onmousedown a onclick zároveň není v tomhle případě nejspíš potřeba.

Jak to? Potřebuji na tom tlačítku rozlišit dlouhý i krátký stisk.

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?

 if (dd.getSeconds()  > (d.getSeconds()+10) ) console.log('dlouhý stisk - pracuji');
        else console.log('nedělám nic');

Zpět do poradny Odpovědět na původní otázku Nahoru