Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 25. 5. 2014, 14:23:05
Mám tenhle kód a ten nějak nefunguje v Chromu a Firefoxu:
$('body').keypress(function(e){ if(e.which == 27){ // bla bla } } IE a Opera je v pořádku. |
||
Chamurappi Profil |
#2 · Zasláno: 25. 5. 2014, 14:45:19
Reaguji na quatzaela:
Událost onkeypress je proslulá tím, že funguje všelijak (i když bych tedy čekal, že to bude naopak, než popisuješ).
Používej onkeydown , kód klávesy zjistíš z keyCode .
|
||
Časová prodleva: 6 dní
|
|||
quatzael Profil |
#3 · Zasláno: 31. 5. 2014, 03:42:03 · Upravil/a: quatzael
Chamurappi:
Jenže tohle mi v Mozille taky nefunguje: $('body').keydown(function(){ if(event.keyCode == 27){ // bla bla } Chamurappi: A tohle taky ne, jestli jsi to měl na mysli: document.getElementsByTagName('body').onkeydown(function(){ if(event.keyCode == 27){ // bla bla } |
||
1Pupik1989 Profil |
#4 · Zasláno: 31. 5. 2014, 08:03:50
Jestli ono to hlavně nebude tím, že getElementsByTagName vrací NodeList.
|
||
preca2 Profil * |
#5 · Zasláno: 31. 5. 2014, 08:46:27
quatzael:
„Jenže tohle mi v Mozille taky nefunguje:“ Neni to tim, že ti tam chybí parametr event? „A tohle taky ne, jestli jsi to měl na mysli:“ Zkus document.getElementsByTagName('body')[0] nebo lépe document.body .
|
||
quatzael Profil |
#6 · Zasláno: 31. 5. 2014, 12:35:47
1Pupik1989, preca2:
Tak udělal jsem to takhle, ale stejně to nefunguje: document.getElementsByTagName('body')[0].onkeydown(function(event) |
||
_es Profil |
#7 · Zasláno: 31. 5. 2014, 13:17:34
quatzael [#6]:
...onkeydown=funkcia... event = event || window.event; |
||
joe Profil |
#8 · Zasláno: 31. 5. 2014, 13:29:27
Použij událost keyup,
$(document).keyup(function(e) { pak by s Esc neměl být problém. |
||
_es Profil |
#9 · Zasláno: 31. 5. 2014, 13:55:08
joe:
V ktorom prehliadači funguje udalosť onkeyup „lepšie“ než onkeydown ?
quatzael: V akej situácii odchytávaš udalosť? Východziu akciu prehliadača si zrušiť skúsil? |
||
quatzael Profil |
#10 · Zasláno: 31. 5. 2014, 13:59:09 · Upravil/a: quatzael
_es:
„V akej situácii odchytávaš udalosť? Východziu akciu prehliadača si zrušiť skúsil?“ Já Ti opravdu nerozumím.. Prostě potřebuju, aby se spustila funkce po stisku klávesy Esc. To je všechno.. Prostě tohle: $('body').keydown(function(){ if(event.keyCode == 27){ // bla bla } Nevím co máš na mysli za situaci.. Jakou výchozí akci prohlížeče máš na mysli? Chamurappi, 1Pupik1989, preca2, joe, _es: Tohle vypadá, že funguje: $(document).keydown(function(e) { if(e.keyCode == 27){ // more stuff } Chyběl tam ten parametr v tý funkci.. |
||
_es Profil |
quatzael:
„Prostě tohle:“ „Proste“ tam vždy vyrobíš nejakú (inú) chybu, na ktorú si už bol upozornený. Argument funkcie máš kde? (Tak si na to stihol prísť aj sám, než som to dopísal.) „Jakou výchozí akci prohlížeče máš na mysli?“ No, že v istých situáciách môže klávesa Esc niečo spraviť- celkom si tým istý nie som. Možno pri formulárových prvkoch a pod. Ako iné „špeciálne“ klávesy: šípky, enter, medzerník, F? klávesy, ... |
||
joe Profil |
_es:
Reagoval jsem na keypress . Pro odchycení Esc je ale vhodnější onkeyup , protože stačí provést akci jen jednou.
quatzael: Jak jsem psal, použij událost onkeyup , funguje "jako" onkeydown , jen s tím rozdílem, že se nevykoná tolikrát.
http://kod.djpw.cz/crdb- |
||
_es Profil |
#13 · Zasláno: 31. 5. 2014, 14:17:43
joe [#12]:
Vyzeralo to ako rada, že na napravenie „nefunkčnosti“ stačí onkeydown nahradiť za onkeyup . Nie je jasné, či chce quatzael zachytávať zatlačenie klávesy alebo až jej pustenie.
|
||
quatzael Profil |
#14 · Zasláno: 31. 5. 2014, 14:18:30
joe:
„Jak jsem psal, použij událost onkeyup, funguje "jako" onkeydown, jen s tím rozdílem, že se nevykoná tolikrát.“ Kolikrát by se měla sama vykonat? onkeydown se jako vykoná vícekrát??
onkeyup mi připadá hodně nepraktický pro situaci kde Esc zavírá dialogový okno (mnou osobně vytvořený - aby zase nevznikly nějaký nedorozumnění), chvíli trvá než klávesu pustíš a vypadá to pak, že počítač reaguje pomaleji, protože normálně je každej zvyklej, že se mu to ihned zavře..
|
||
_es Profil |
quatzael:
„ onkeydown se jako vykoná vícekrát??“
V závislosti od prehliadača sa viackrát môžu „vykonať“ udalosti onkeypress aj onkeydown pri dlhšom držaní klávesy.
|
||
quatzael Profil |
#16 · Zasláno: 31. 5. 2014, 14:33:22
_es:
No tak každopádně tohle potřebuju k schovávání a odstraňování elementů, takže vůbec nevadí když se něco schová/odstraní vícekrát.. |
||
joe Profil |
#17 · Zasláno: 31. 5. 2014, 16:06:21
quatzael:
„chvíli trvá než klávesu pustíš a vypadá to pak, že počítač reaguje pomaleji,“ Dokud nepustíš tlačítko myši nad odkazem, taky se neotevře. |
||
quatzael Profil |
#18 · Zasláno: 31. 5. 2014, 16:14:09
joe:
„Dokud nepustíš tlačítko myši nad odkazem, taky se neotevře.“ Jo, ale to je chování, na který je každý zvyklý. U klávesy Esc tohle neplatí. |
||
_es Profil |
#19 · Zasláno: 31. 5. 2014, 17:07:38
joe:
„Dokud nepustíš tlačítko myši nad odkazem, taky se neotevře.“ Bez toho by nešli „drag & drop špeciality“ s odkazmi. |
||
joe Profil |
#20 · Zasláno: 31. 5. 2014, 18:31:01 · Upravil/a: joe
quatzael:
„U klávesy Esc tohle neplatí.“ Nemyslím si a ani v Googlu si to nemyslí, zkus třeba na mapách kliknout na ikonku pro menu vedle tlačítka přihlášení a pak si vyzkoušet, jak funguje Esc. Výhodu schování popupu na onkeyup vidím v tom, že si uživatel může ještě rozmyslet, kdy ho chce skrýt a skryje ho, až když klávesu opustí.
_es: „Bez toho by nešli ‚drag & drop špeciality‘ s odkazmi.“ A z toho důvodu ti také přijde, že počítač reaguje pomaleji, když se na odkaz přesměruje až po opuštění tlačítka nad ním? Nehledě na to, že popupů může být přes sebe zobrazeno víc a delším stisknutím Esc bys je mohl všechny nechtěně zavřít, z toho důvodu je také výhodnější použít onkeyup .
|
||
quatzael Profil |
#21 · Zasláno: 31. 5. 2014, 19:13:00
joe:
„Výhodu schování popupu na onkeyup vidím v tom, že si uživatel může ještě rozmyslet, kdy ho chce skrýt a skryje ho, až když klávesu opustí.“ No já tam budu mít vždycky jenom maximálně jedno pop-up okno. A já většinou když mačkám Esc, tak proto, aby to rychle zmizelo a ne, abych si to ještě prohlížel.. A jako když si to rozmyslím a budu to držet, tak to spíš pustím, protože mě na padne, že tady to Esc stejně nefunguje.. |
||
_es Profil |
#22 · Zasláno: 31. 5. 2014, 19:53:22
joe [#20]:
Klávesa ESc „normálne“ reaguje už na zatlačenie dole. Je to tak pri ponuke vyskočenej po stlačení pravého tlačítka myši či klávesy na to na klávesnici. Tou „ikonkou na mapách“ myslíš tých 9 štvorčekov? To tiež reaguje už na stlačenie Esc - no to je už správanie definované v JS. „A z toho důvodu ti také přijde...“ Nie, len som písal, že bez toho by drag&drop možnosti nemohli fungovať - nič iné. Ak by to fungovalo už na zatlačenie tlačítka myši, ako by si ten odkaz niekam „pretiahol“? Pri „kliknutí“ pomocou enter to reaguje už na zatlačenie klávesy. Možno sa však v tomto rôzne prehliadače môžu líšiť. |
||
Časová prodleva: 11 let
|
0