2013-08-19 21 views
8

Anahtar olayını kullanarak OLMADAN CTRL ve SHIFT anahtarını algılayabilir miyim diye merak ettim. Anahtar olay olmadan CTRL ve SHIFT tuşlarını algıla?

nedeni

Ben JavaScript Izgara Görüntüleyici çeşit oluşturarak olduğumu ve ben CTRL veya SHIFT anahtar o kadar en sık izleyiciler, editörler ve işlevleri olarak tutarak farklı öğeleri seçerek uyguladı.

sorun olduğunu odak değil her yerde sayfada olduğunda. Örneğin, yer imlerine sayfa ekliyorum. Sonra CTRL veya SHIFT tutun ve öğeyi tıklayın ama keydown tetikleyen edilmemiş olarak normalde davranır.

bu atlayarak bir yolu var? Belki de değil, ama benim kendi açık Böcekim gibi davranacak müşteriler için kafa karıştırıcı olabilir.

+0

Onlar sizinki gibi davranırsa, bu onların hatasıdır. Sayfanıza odaklanmak istemiyorlarsa, özelliklerinizi alamıyorlar – Ian

+2

Bu tuşları da 'onclick 'işleyicisi olarak algılayabilirsiniz ... – Teemu

+1

@Teemu Good point. 'Keydown' olayının neden kullanıldığından emin değilim. Her şey tıklama noktasında kontrol edilmelidir – Ian

cevap

15

Sen Shift, Ctrl algılamak için hiç bir önemli olayları gerekmez fare MDN tıklandığında ve Alt.

element.addEventListener('click', function (e) { 
    console.log(e.shiftKey); 
    console.log(e.ctrlKey); 
    console.log(e.altKey); 
}); 

A demo at jsFiddle:

Olay nesnesi bu bilgiler içermektedir.

Bu özellikler klavye olay işleyicileri de okunabilir.

İlgili konular