Yabancı dil için bir klavye oluşturmaya çalışıyorum. Yabancı karakterlere basılan tuşları dönüştürmek için jQuery kullanıyorum. Ben kullanıyorum:jQuery ile nasıl altKey + i, u, e, n'yi yakalarım?
- A - Z
- ALT + A - Z
- SHIFT + A - Z
ALT + SHIFT + A - Z
- ALT + Ben
- ALT + U
- ALT + E : My kodunun bu 4 hariç tüm bunlar için çalışır
- ALT + N
O Firefox'ta çalışıyor, ancak Chrome ve Safari Bunları aksan işaretleri olsun (Ben bir mac kullanıyorum) - ˆ
, ¨
, ´
, ˜
- textarea'ya gitmesi gereken yabancı karakter yerine.
İşte kodun bir kısmı:
function type(e, char, textArea) {
e.preventDefault();
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var len = textArea.val().length;
var newPos = start + char.length;
textArea.val(textArea.val().substring(0, start) + char + textArea.val().substring(end, len));
textArea[0].setSelectionRange(newPos, newPos);
}
$('textarea').keydown(function(e) {
var textArea = $(this);
if (e.which == 65 && e.altKey) {type(e, 'अ', textArea);return false;}
if (e.which == 68 && e.altKey) {type(e, 'ड', textArea);return false;}
if (e.which == 73 && e.altKey) {type(e, 'इ', textArea);return false;}
if (e.which == 74 && e.altKey) {type(e, 'ज्ञ', textArea);return false;}
});
e.which
65
, 68
ve 74
değil 73
olduğunda bu çalışır.
Bunu doğru şekilde nasıl sağlayabilirim?
FYI, 'false döndür ', birlikte e.preventDefault() ve e.stopPropagation()' ile aynıdır. – VisioN
, "e.which" adlı bir 'console.log'unu yapabilir ve [ALT] + [I] yaparken ne yaptığını kontrol edebilir misiniz? Bu [JSFiddle] kullanarak (https://jsfiddle.net/z2borwez/), benim için krom çalışır (Windows 10) – Jordumus
@Jordumus: JSFiddle üzerinde, 18 + 229 olsun. ALT] + [u], [ALT] + [e] ve [ALT] + [n]. – Travis