JQuery Arrow Keys

JQuery'de ok tuş vuruşlarını tutmağa çalışırdım amma heç bir hadisə başlamaz.

 $(function(){ $('html').keypress(function(e){ console.log(e); }); }); 

Bu alfasayısal düymələr üçün tədbirlər yaradır, ancaq silinmə, ok tuşları və s. heç bir hadisə yaratmırıq.

Onları tutmaq üçün mən nəyə səhv edirəm?

51
13 окт. RedBassett 13 oktyabrda təyin olundu. 2013-10-13 19:08 '13 at 7:08 pm 2013-10-13 19:08
@ 5 cavab

Məsələn bir nümunə: JSnippet DEMO keydown () vs keypress ()

.keydown() istifadə etmək lazımdır, çünki .keypress() əsas növünü tutmaq üçün oxları yox sayır, e.which

Nəticələri ekrana vurun (skripka ekranının sağ altındakı) və sonra necə işlədiyini görmək üçün ok düymələrinə basın.

Qeydlər:

  • .keypress() heç vaxt Shift, Esc və silməklə .keydown() , lakin .keydown() olacaq.
  • Əslində, bəzi brauzerlərdə .keypress() ox düymələri ilə başlanacaq, ancaq bu, cross-brauzer deyil, belə ki, daha etibarlı istifadə .keydown() .

Əlavə faydalı məlumatlar

  1. . .keyCode ya .keyCode hadisə obyektindən istifadə edə bilərsiniz. Bəzi brauzerlər onlardan birini dəstəkləmir, lakin jQuery istifadə edərkən, jQuery hər şeyi standartlaşdırır, çünki həm də istifadə etmək təhlükəsizdir. (Mən heç bir problemlə .which ).
  2. ctrl / alt / shift düyməsini basaraq faktiki ələ shift düyməsini basmaqla aşkar etmək istəyirsinizsə, hadisə obyektinin .ctrlKey , .altKey.shiftKey xüsusiyyətlərini .shiftKey - istifadə etdikləri halda TRUE olur.
  3. Nəhayət, burada bəzi faydalı kodlar var (Tam siyahısı - keycode-cheatsheet ):

    • Daxil edin: 13
    • Up: 38
    • Aşağı: 40
    • Sağ: 39
    • Sol: 37
    • Esc: 27
    • SpaceBar: 32
    • Ctrl: 17
    • Alt: 18
    • Shift: 16
142
13 окт. Shlomi Hassid tərəfindən verilmiş cavabı 13 oktyabr 2013-10-13 19:16 '13 'da 19:16' da 2013-10-13 19:16
 $(document).keydown(function(e) { console.log(e.keyCode); }); 

Keypress hadisələri ok tuşlarını aşkar edir, lakin bütün brauzerlərdə deyil. Buna görə də, keydown istifadə daha yaxşıdır.

border=0

Bunlar sizin konsol jurnalınıza daxil etməlisiniz ki, əsas kodlardır:

  • sol = 37
  • up = 38
  • sağ = 39
  • aşağı = 40
23
13 окт. Harsha Venkatram tərəfindən verilmiş cavab oktyabr 13 2013-10-13 19:13 '13 at 19:13 2013-10-13 19:13

Ok tuşunun basıldığını yoxlaya bilərsiniz:

 $(document).keydown(function(e){ if (e.keyCode > 36  e.keyCode < 41) alert( "arrowkey pressed" ); }); 

jsfiddle demo

7
18 дек. Cavab 18 dekabrda verilir . 2014-12-18 06:18 '14 'də 6:18' də 2014-12-18 06:18

JQuery-dən olan linkə baxın

http://api.jquery.com/keypress/

Bu deyir

Brauzer klaviatura girişini qeyd edərkən bir elementə əsas mətbuat hadisə göndərilir. Bu dəyişikliklər, Shift, Esc və silmək kimi dəyişənlərin və qeyri-çap düymələrinin istisna olmaqla, key-change hadisələrinə səbəb olur, ancaq mətbuat hadisələri deyil. Platforma və brauzerə bağlı olaraq iki hadisənin digər fərqləri baş verə bilər.

Yəni oxlar halında basaraq istifadə edə bilməyəcəksiniz.

2
24 июля '14 в 19:32 2014-07-24 19:32 Cavab Tatha tərəfindən 24 İyul 24 'da 19:32 2014-07-24 19:32
 $(document).on( "keydown", keyPressed); function keyPressed (e){ e = e || window.e; var newchar = e.which || e.keyCode; alert(newchar) } 
0
04 мая '17 в 9:58 2017-05-04 09:58 Cavab verilir Bharath Mb 04 May '17 at 9:58 2017-05-05 09:58

yazıları ilə bağlı digər suallar və ya bir sual