Autor | Zpráva | ||
---|---|---|---|
lucas Profil * |
#1 · Zasláno: 16. 9. 2009, 23:26:07
Zdravím všechny, potřeboval bych poradit s jedním zvláštním problémem.
Chci, aby uživatel mohl procházet seznamem souborů i pomocí klávesnice: $(document).keydown(function(e) { if (!$(".ss_radek").length) return; i = $(".ss_radek").index($(".ss_oznaceny")); spodni = $(".ss_radek").length - 1; if (e.keyCode == 38 && i > 0) oznacit = i - 1; if (e.keyCode == 40 && i < spodni) oznacit = i + 1; if (e.keyCode == 36) oznacit = 0; if (e.keyCode == 35) oznacit = spodni; if (oznacit != null) { $(".ss_radek").removeClass("ss_oznaceny"); $($(".ss_radek")[oznacit]).addClass("ss_oznaceny"); } //------------------------------------------------------------------------------------- if (e.keyCode == 13) $(".ss_oznaceny").trigger("dblclick"); if (e.keyCode == 37) location.href = $(".ss_predchozi").attr("href"); if (e.keyCode == 39) location.href = $(".ss_dalsi").attr("href"); //------------------------------------------------------------------------------------- }); Všechno funguje jak má, ale enter a šipky vpravo/vlevo začnou fungovat až po tom, co se stiskne jakákoliv jiná klávesa. Takže po reloadu tyhle tři klávesy nejdou, stačí se ale třeba posunout na další soubor šipkou dolů a už to funguje. Zkoušel jsem to v Chrome, FF a IE a všude to samý. Setkal jste se s tím už někdo? |
||
lucas Profil * |
#2 · Zasláno: 17. 9. 2009, 12:49:20
Tak vyřešeno. Tenhle kód
if (oznacit != null) { $(".ss_radek").removeClass("ss_oznaceny"); $($(".ss_radek")[oznacit]).addClass("ss_oznaceny"); } po vykonání vyskočil z funkce a na poslední tři podmínky už nedošlo. V JS není v neinicializovaný proměnný null, jak jsem si myslel, takže se provedl vždycky. To že přerušoval funkci, bylo nejspíš právě použitím neinicializovaný proměnný jako indexu. Na začátek stačilo přidat oznacit = null a už to jede. :-) :-) :-) |
||
Časová prodleva: 7 dní
|
|||
dominikdavid Profil |
#3 · Zasláno: 24. 9. 2009, 17:43:55
Zdravím!
Mám podobný problém. Chtěl bych "přecházet mezi stránkami" pomocí šipek, ale nějak mi to nefunguje. Díky za pomoc <script type="text/javascript"> function funkce() { document.keydown(function(e) { if (e.keyCode == 37) location.href = "http://xxx.cz"; if (e.keyCode == 39) location.href = "http://blabla.cz"; }); } </script> <body onload="funkce()"> </body> |
||
Časová prodleva: 15 let
|
0