Neočekávané chování při stisku dvou kláves současně rubrika: Programování: JavaScript
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.
Chyba je určitě v použití keyup i keydown zároveň. V checkWriting chybí parametr event, odkud čteš proud nových znaků. V checkWring pak použiješ pokud event.keyCode != ocekavanePismeno, tak 1) tak stornuješ event 2) inkrementuješ error count 3) Potřebuješ vypsat chybné písmeno, takže potřebuješ proměnou s celkovým počtem napsaných písmen (včetně ošetření del, backspace). Celkově takto nepotřebuješ zneužívat textareu, jako proměnou a můžeš držet View část oddělenou. To používaní View, jako modelu, pokud dáš pryč, tak to logicky odstraní i ostatní chyby.
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře