Neočekávané chování při stisku dvou kláves – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Neočekávané chování při stisku dvou kláves – JavaScript, AJAX, jQuery – Fórum – Programujte.comNeočekávané chování při stisku dvou kláves – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

stirl021
~ Anonymní uživatel
6 příspěvků
17. 8. 2015   #1
-
0
-

Mám jednoduchá skript pro nácvik psaní všemi deseti, viz http://jsfiddle.net/stirl021/m5an8gn7/4/

Pokud uživatel při psaní udělá chybu, zobrazí se znak, který má správně stisknout. Po opravě (tzn. stiskne klávesu se znakem, ve kterém udělal chybu), znak zmizí a pokračuje v psaní. Problém je, že když se při opravě stisknou dvě chybné klávesy současně (nebo velmi rychle po sobě), zobrazený chybný znak zmizí, přitom by měl na obrazovce zůstat, protože nebyla zmáčknuta správná klávesa.

Např. text k přepisu je "zkouška psaní". Uživatel napíše "zkou" a pak udělá chybu a stiskne "č" (správně má být "š" ). Zobrazí se tedy písmeno "š". Teď uživatel stiskne dvě jiné špatné dvě klávesy a písmeno "š" zmizí. Přitom by mělo na obrazovce zůstat, protože nebyla zmáčknuta správná klávesa ("š").

Nedaří se mi zjistit, čím to je. 

Díky za nápady.

Nahlásit jako SPAM
IP: 109.164.76.–
Matěj Andrle+1
Grafoman
18. 8. 2015   #2
-
0
-

#1 stirl021
Zaprvé žer jen KeyUp - KeyDown se opakuje. Zadruhé používej mapu - hashtable. (Hodíš znak, dostaneš výsledek - v dynamickém jazyce stačí "if (hashtable[vstup])" a cokoliv mimo validní vstup neprojde.) Zatřetí přeci není správně, když uživatel zmáčkne 600 kláves - z nich může vždy jedna být OK. Pročež bych v tomto případě počítal za chybu i to, když zmáčkne více kláves - za každý znak body dolů. Načež bych vstup rval do stringu a porovnával s vyobrazovaným. Tím ať přidá sebevíce kláves, přesně budeš vědět, odkud se překlepl - a odtamtud mu budeš napočítávat body a odtamtud mu to necháš označené k přepsání... (A více nemusíš řešit.)

Nahlásit jako SPAM
IP: 90.182.189.–
stirl021
~ Anonymní uživatel
6 příspěvků
18. 8. 2015   #3
-
0
-

#2 Matěj Andrle
S počítáním chyb máš pravdu, pokud by šlo o soutěž. Pro mě skript slouží jako výukový software, proto chci, aby při špatné klávese uživatele zastavil proto, aby si uvědomil chybu a opravil ji. Hashtable neznám, nastuduju a vyzkouším. Díky

Nahlásit jako SPAM
IP: 109.164.76.–
stirl021
~ Anonymní uživatel
6 příspěvků
23. 8. 2015   #4
-
0
-

#1 stirl021
Vyřešeno http://jsfiddle.net/stirl021/m5an8gn7/

Šlo o konflikt keyup a keydown.

Nahlásit jako SPAM
IP: 109.164.76.–
Matěj Andrle+1
Grafoman
23. 8. 2015   #5
-
0
-

#4 stirl021
Však jsem vám to psal. (Nechť nahradíte KeyDown KeyUpem.) Nuže uzavřete to tu.

Nahlásit jako SPAM
IP: 78.136.185.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý