본문 바로가기

언어공부/JavaScript&jQuery

제이쿼리(jQuery) 기초 문법 - 제이쿼리 이벤트 (2)

제이쿼리(jQuery) 기초 문법

제이쿼리 이벤트

강제로 이벤트 발생 시키기

이벤트가 강제로 발생했다는 말은 사용자에 의해 이벤트가 발생한게 아니라 핸들러에 의해 자동으로 이벤트가 발생했음을 의미한다. 

 

<script>
$("이벤트 대상").단독 이벤트 등록 메소드();
$("이벤트 대상").trigger("이벤트 종류");

$(function(){
	$("#btn1").click(function(){
		alert("btn1");
	});
	
    $("#btn2").on({
    "mouseover focus" : function(){
    		alert("btn2");
    	}
    });
    
    $("#btn1").click();//btn1 클릭시 위의 이벤트 핸들러가 실행
    $("#btn2").trigger("mouseover");//btn2에 포인터를 올리면 이벤트 핸들러 실행
 });
</script>

 

이벤트 제거 메소드

이벤트를 제거하는 메소드로 off()가 있다. 

 

<script>
$("이벤트 대상").off("제거할 이벤트 종류");
</script>

 

이벤트 객체와 종류

사용자가 이벤트를 발생시킬 때마다 이벤트 핸들러의 매개변수에는 이벤트 객체가 생성되며, 이벤트 객체에는 이벤트 타입에 맞는 다양한 정보를 제공하는 속성과 메소드가 포함되어 있다. 

 

<script>
$("이벤트 대상 선택").mousemove(function(매개변수){
	매개변수(이벤트 객체).속성;
});

$(document).on("mousemove",function(e){
//마우스 포인터의 좌표값을 x,y클래스 부분에 보여준다.
	$(".X").text(e.pageX);
    $(".Y").text(e.pageY);
   });
}
</script>

 

이벤트 객체의 속성 종류

구분 종류 설명
마우스 이벤트 clientX(Y) 마우스 포인터의 X(Y) 좌표값 반환(스크롤 이동 거리 무시)
pageX(Y) 스크롤 X(Y)축의 이동한 거리를 계산하여 마우스 포인터의 X(Y)좌표값을 반환
screenX(Y) 화면 모니터를 기준으로 마우스 포인터의 X(Y)좌표값을 반환
layerX(Y) position을 적용한 요소를 기준으로 마우스 포인터의 X(Y)좌표값을 반환
button 마우스 버튼의 종류의 따라 값을 반환(왼쪽:0, 휠:1, 오른쪽:2)
키보드 이벤트 keyCode 키보드의 아스키 코드값을 반환
altKey 이벤트 발생 시 alt키가 눌렸으면 true, 아니면 false를 반환
ctrlKey 이벤트 발생 시 ctrl키가 눌렸으면 true, 아니면 false를 반환
shiftKey 이벤트 발생 시 shift키가 눌렸으면 true, 아니면 false를 반환
전체 이벤트 target 이벤트가 전파된 마지막 요소를 가리킨다.
cancelBubble 이벤트의 전파를 차단하는 속성으로, 기본값은 false며, true로 설정하면 전파가 차단된다.
stopPropagation() 이벤트의 전파를 차단한다.
preventDefault() 기본 이벤트를 차단한다. 예를 들어 <a>에 클릭 이벤트를 적용하고 사용자가 이벤트를 발생시키면 기본 이벤트가 등록되어 있어 링크 주소로 이동하는데, 이런 기본 이벤트를 차단할 수 있다.

 

키보드로 마우스 이벤트 대응하기

키보드 접근성이란 어떤 대상 요소에 마우스 이벤트를 등록했을 때 마우스 없이 키보드로 대상 요소를 사용할 수 있게 하는것을 말한다. 마우스 이벤트가 등록되었을 때는 키보드로 작동할 수 있게 대응 이벤트를 함께 작성하는게 좋다.

 

마우스 이벤트 키보드 이벤트 
mouseover focus
mouseout blur

 

<body>
<button id="btn">버튼</button>
<p class="txt">내용</p>

<script>

$("#btn").on("mouseover focus",
function(){
	$(".txt").hide();	
});

</script>
</body>

 

위는 키보드 접근성을 고려한 방법이다. 마우스 포인터를 올리거나 키보드의 tab키로 포커스를 이동해 버튼으로 포커스를 이동하면 class="txt"인 p태그가 숨겨진다.