e는 눌린 키의 숫자 표현을 제공합니다. 당신은에이 작업을 수행 할 수
var $q = $('input#q');
$q.on('keydown', function (e) {
var val = e.which;
var num = (val > 47 && val < 58 || val > 95 && val < 106);
var letter = (val > 64 && val < 91);
if (num || letter) {
$('#container').animate({scrollTop: 410}, 500);
$(this).off('keydown');
}
}).focus();
: 문자가이 시도 65-90
으로 표시하는 동안 숫자 키는 48-57 (또는 키패드의 96-105)로 표시된다
var $q = $('input#q');
$q.on('input', function (e) {
$('#container').animate({
scrollTop: 410
}, 500);
$(this).off('input');
}).focus();
을하지만, 이것은 당신이 보면, 당신은 심 찾을 수 있지만 적은 9보다 IE 버전에 대해 작동하지 않습니다 : 텍스트 필드에 입력을 생성 아무것도 작동합니다. Here is an example
당신은이 작업을 수행 할 수 있지만 (사용자가 키를 해제 할 때까지) 사용자가 오랜 시간 동안 아래로 키를 누른 경우 즉시 이동하지 않을 것입니다.
var $q = $('input#q');
var qval = $q.val()
$q.on('keyup', function (e) {
if(qval != $q.val()) {
$('#container').animate({scrollTop: 410}, 500);
$(this).off('keyup');
}
}).focus();
사용자가 키를 눌렀을 때 (해제하기 전에) 'keydown'이 트리거됩니다. 'e.which'는 키를 눌렀다는 숫자 표현이며,'!'또는'~'와 같은 문자를 포함 할 수 없습니다. 또한 '!'문자를 얻으려면 "Shift"를 누른 다음 "1"을 눌러야 만 키 입력이 시작됩니다. 나는 당신이 원하는 것을 정확히 밝힐 필요가 있다고 생각합니다. – smerny
글쎄, 내가 마지막으로 (삭제 된) 주석에서 말한 것을 따라 왔고'var reMatch =/[! - ~] /. exec (String.fromCharCode (e.which));를 사용했다. 'shift'가 무시 된 후에 스크롤을 유발하는'!'의 ascii가 전달됩니다. 그러나 화살표 키는 여전히 스크롤을 발생 시키는데,이 문제도 해결할 수있는 방법이 있습니까? – Sourabh
글자에 대한 답변을 게시하고 숫자 키 (교대로 누르고있는 경우 포함)를 누른 다음 숫자 키를 누릅니다. 이것은 당신이 찾고있는 것을 커버합니까? 또한,'fromCharCode (e.which)'는 많은 키들에 대해 기대 한 것을 반환하지 않을 것입니다. – smerny