Soru JQuery ile “Sil” Tuşa Basma


Tuşa basma olay işleyicisi için jQuery belgelerinden örnek kodu kullanırken, yakalayamıyorum silmek tuşuna basın. Aşağıdaki snippet günlüğe kaydedilecek 0 ne zaman silmek FireFox'ta tuşa basılır:

$(document).keypress(function(e) {
    console.log(e.which);       
});

Görünüşe göre, yakalanmanın bir yolu olmalı. silmek Anahtar, ancak belirsiz bir terim olduğundan, Google bununla ilgili çok fazla yardım etmediğini kanıtlıyor.


103
2017-07-12 15:30


Menşei




Cevaplar:


Kullanmamalısın keypress olay, ama keyup veya keydown olay çünkü keypress olay gerçek (yazdırılabilir) karakterler için tasarlanmıştır. keydown gibi daha düşük bir seviyede ele alınır silmek ve girmek.


179
2017-07-12 15:34



Teşekkürler bayım! - Shane H
Yararlı bilgi için teşekkürler. - Vikram Deshmukh
Bilgileriniz benim sorunumu çözdü. teşekkür ederim - Null Pointer
keyup işi daha iyi yapardı. - atilkan
@atilkan no, kullanıcı geri bildirim bekler keydown, değil keyup. Tüm metin editörleri, bir tuşa basıldığında, serbest bırakıldığında değil, eylemler gerçekleştirir. - Philippe Leybaert


$('html').keyup(function(e){
    if(e.keyCode == 46) {
        alert('Delete key released');
    }
});

Kaynak: javascript char kodları anahtar kodları www.cambiaresearch.com adresinden


73
2017-07-27 10:21



Olmalı alert('Delete Key Released'). - Waldheinz
Eğer birisi keyup yerine keypress kullanıyorsa Tod tarafından önerilmişse, o zaman keycode == 46 aleyhtarı olur. tuş (nokta). ama keyUp ile iyi çalışıyor. Teşekkürler - Mubashar Ahmad
Kaynak için teşekkürler, büyük referans! - Fidel90


Javascript Anahtar Kodları

  • e.keyCode == 8 için geri tuşu
  • e.keyCode == 46 için ileri geri boşluk veya silmek PC’lerde

Bu detayın dışında Colin & Tod'un cevabı çalışıyor.


27
2017-11-01 10:39



Olmalı e.keyCode ve e.KeyCode değil - Jerome


event.key === "Sil"

Daha yeni ve daha temiz: kullanım event.key. Daha fazla rasgele sayı kodu yok!

document.addEventListener('keydown', function(event) {
    const key = event.key; // const {key} = event; ES6+
    if (key === "Delete") {
        // Do things
    }
});

Mozilla Dokümanlar

Desteklenen Tarayıcılar


4
2017-12-03 01:36