웹 개발 메모장
[JQuery] 키보드 이벤트 발생 순서 (keydown / keypress 차이) 본문
키보드 이벤트
키보드 이벤트 발생 순서
1. 키보드를 누릅니다.
2. keydown 이벤트가 발생합니다.
3. 글자가 입력됩니다.
4. keypress 이벤트가 발생합니다.
5. 키보드에서 손을 뗍니다
6. keyup 이벤트가 발생합니다.
이벤트 발생 확인하기 ※직접 입력해보세요.
|
keydown |
keypress |
|
keyup |
위를 통해 테스트해보시면 알겠지만 keypress 는 입력할 수 있는 키보드(영어, 숫자 등)가 눌렸을 때에만 이벤트가 발생합니다.
또한 한글 입력, 방향키, del키 등은 keypress 이벤트를 발생시키지 않습니다.
※ 위 이벤트 체크하는 자바스크립트 코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | function keyEv(selectorID){ var c = $('#'+selectorID).css('background-color'); var startIdx = c.indexOf('(')+1; var endIdx = c.indexOf(')'); var rgb = c.substring(startIdx, endIdx).split(','); rgb[0] = parseInt(rgb[0]); rgb[1] = parseInt(rgb[1]); rgb[2] = parseInt(rgb[2]); rgb[0] += (rgb[0] <= 255) ? 2 : 0; rgb[1] += (rgb[1] <= 255) ? 2 : 0; rgb[2] += (rgb[2] <= 255) ? 2 : 0; $('#'+selectorID).css('background-color', 'rgb('+rgb[0]+','+rgb[1]+','+rgb[2]+')'); } function changeColor(tdID){ $('#'+tdID).css('background-color', '#FF2424'); $('#'+tdID).css('color', '#FFFFFF'); var id = setInterval(function() { keyEv(tdID); }, 1); setTimeout(function(){ clearInterval(id); $('#'+tdID).css('color', '#CCCCCC'); }, 1000); } $(document).on('keydown', '#inputText', function() { changeColor('keydownTD'); }); $(document).on('keypress', '#inputText', function() { changeColor('keypressTD'); }); $(document).on('keyup', '#inputText', function() { changeColor('keyupTD'); }); | cs |
'옛날.. > 자바스크립트' 카테고리의 다른 글
[JQuery] 스크롤 내리면 다음 글 불러오기 (scroll 이벤트) (0) | 2018.01.12 |
---|---|
[jQuery] textarea에 글자 입력할 때 글자 수 카운트 예제 (0) | 2018.01.12 |
[JQuery] mouseover 가 내부 태그에 겹치면 mouseenter (0) | 2018.01.11 |
[JQuery] 객체 확장 $.extend() (0) | 2018.01.11 |
[JQuery] $.each() (0) | 2018.01.11 |
Comments