jQuery 입문 | 이벤트 처리 | 이벤트 메소드 .click() .hover() .keypress() .focusin()
이벤트 메소드
jQuery는 .on()
메소드 이외에도 자바스크립트 이벤트와 관련된 다양한 메소드를 제공한다.
이러한 이벤트 메소드는 이벤트가 발생하는 요소에 따라 다음과 같이 구분할 수 있다.
- 마우스 이벤트와 관련된 메소드
- 키보드 이벤트와 관련된 메소드
- 입력 양식 이벤트와 관련된 메소드
마우스 이벤트와 관련된 메소드
jQuery에서 제공하는 마우스 이벤트와 관련된 메소드는 다음과 같다.
메소드 | 설명 |
---|---|
.click() | 자바스크립트의 “click” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “click” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.dblclick() | 자바스크립트의 “dblclick” 이벤트 핸들러를 연결되고, 해당 요소에 “dblclick” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.hover() | 자바스크립트의 “mouseenter"와 “mouseleave” 이벤트를 하나의 이벤트 핸들러와 연결되고, 해당 요소에 “mouseenter"와 “mouseleave” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.mousedown() | 자바스크립트의 “mousedown” 이벤트 핸들러를 연결되고, 해당 요소에 “mousedown” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.mouseenter() | 해당 요소 위로 마우스가 진입할 때 발생하는 이벤트가 이벤트 핸들러에 연결되고, 해당 요소에 마우스 진입 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.mouseleave() | 해당 요소에서 마우스가 빠져나갈 때 발생하는 이벤트와 이벤트 핸들러에 연결되고, 해당 요소에 마우스가 빠져나가는 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.mousemove() | 자바스크립트의 “mousemove” 이벤트와 이벤트 핸들러를 연결하거나, 해당 요소에 “mousemove” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.mouseout() | 자바스크립트의 “mouseout” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “mouseout” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.mouseover() | 자바스크립트의 “mouseover” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “mouseover” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.mouseup() | 자바스크립트의 “mouseup” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “mouseup” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.click() 메소드와 .dblclick() 메소드
.click()
메소드는 자바스크립트의 “click” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “click” 이벤트가 발생되었을 때 설정한 함수가 실행된다.
.dblclick()
메소드는 자바스크립트의 “dblclick” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “dblclick” 이벤트가 발생되었을 때 설정한 함수가 실행된다.
아래 예제는 버튼이 클릭되거나 더블 클릭되었을 때 상태를 출력하는 예제이다.
$("button").click(function() {
$("div").text("클릭이 되었습니다.");
});
$("button").dblclick(function() {
$("div").text("더블 클릭이 되었습니다.");
});
.hover() 메소드
.hover()
메소드는 자바스크립트의 “mouseenter"와 “mouseleave” 이벤트를 하나의 이벤트 핸들러와 연결되고, 해당 요소에 “mouseenter"와 “mouseleave” 이벤트가 발생되었을 때 설정한 함수가 실행된다.
아래 예제는 버튼에 마우스가 올라오거나 빠져나갔을 때 상태를 출력하는 예제이다.
$("button").hover(function() {
$("#text").text("마우스가 올라왔습니다.");
}, function(){
$("#text").text("마우스가 빠져나갔습니다.");
});
설정한 함수가 두개이면 첫번째 함수는 “mouseenter” 이벤트가 발생할 시에 실행되고, 두번째 함수는 첫번째 함수는 “mouseleave” 이벤트가 발생할 시에 실행된다.
설정한 함수가 한개인 경우에는 “mouseenter” 이벤트와 “mouseleave” 이벤트 중에 하나만 발생하면 한개의 함수가 실행된다.
키보드 이벤트와 관련된 메소드
메소드 | 설명 |
---|---|
.keydown() | 자바스크립트의 “keydown” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “keydown” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.keyup() | 자바스크립트의 “keyup” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “keyup” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.keypress() | 자바스크립트의 “keypress” 이벤트와 이벤트 핸들러를 연결하거나, 해당 요소에 “keypress” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.keypress() 메소드
.keypress()
메소드는 자바스크립트의 “keydown” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “keydown” 이벤트가 발생되었을 때 설정한 함수가 실행된다.
다음 예제는 <input>
요소에 키보드로 문자를 입력할 때마다 카운팅하여 출력하는 예제이다.
var i = 0;
$("input").keypress(function() {
$("#text").text((++i) + "번 키보드가 눌렸습니다.");
});
Shift, Esc, Delete와 같은 화면에 출력되지 않는 키(modifier and non-printing keys)들은 “keydown” 이벤트는 발생시키지만, “keypress” 이벤트는 발생시키지 않는다.
입력 양식 이벤트와 관련된 메소드
메소드 | 설명 |
---|---|
.blur() | 자바스크립트의 “blur” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “blur” 이벤트를 발생시킴. |
.change() | 자바스크립트의 “change” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “change” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.select() | 자바스크립트의 “select” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “select” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.submit() | 자바스크립트의 “submit” 이벤트가 이벤트 핸들러를 연결되고 해당 요소에 “submit” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.focus() | 자바스크립트의 “focus” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “focus” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.focusin() | “focusin” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “focusin” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.focusout() | “focusout” 이벤트와 이벤트 핸들러를 연결하거나, 해당 요소에 “focusout” 이벤트가 발생되었을 때 설정한 함수가 실행된다. |
.focusin() 메소드와 .focusout() 메소드
.focusin()
메소드는 “focusin” 이벤트가 이벤트 핸들러를 연결되고, 해당 요소에 “focusin” 이벤트가 발생되었을 때 설정한 함수가 실행된다.
.focusout()
메소드는 “focusout” 이벤트와 이벤트 핸들러를 연결하거나, 해당 요소에 “focusout” 이벤트가 발생되었을 때 설정한 함수가 실행된다.
$("input").focusin(function() {
$(this).css("background-color", "yellow");
});
$("input").focusout(function() {
$(this).css("background-color", "white");
});
this 키워드는 현재 선택되어 있는 요소 그 자체를 가리킨다.
참조
- https://api.jquery.com/click/
- https://api.jquery.com/dblclick/
- https://api.jquery.com/hover/
- https://api.jquery.com/keypress/
- https://api.jquery.com/focusout/
- https://api.jquery.com/focusin/