코밍이의 하루

[JQuery] 마우스 이벤트 본문

웹언어 공부/JQuery

[JQuery] 마우스 이벤트

코밍이 2021. 8. 20. 00:13

1. 개발 환경

구분 내용
사용 언어 HTML5, CSS3, JS, jQuery
개발환경 Visual Studio Code
참고 도서 [Do it] 자바스크립트 + 제이쿼리 입문
웹브라우저 Chrome

2. 주요 문법

1) 마우스 이벤트
- 사용자가 사이트에서 마우스를 이용해서 취하는 모든 행위

 

2) click() / dblclick() 메소드

- click() 이벤트 메소드 : 선택한 요소를 클릭했을 때 이벤트를 발생시키거나 선택한 요소에 강제로 클릭 이벤트를 발생시킬 때 사용

기본형
① click 이벤트 등록
$("이벤트 대상 선택").click(function() {자바스크립트 코드;});
$("이벤트 대상 선택").on("click", function() {자바스크립트 코드;});

② click 이벤트 강제 발생
$("이벤트 대상 선택").click();

- dblclick() 이벤트 메소드 : 선택한 요소를 연속해서 두 번 클릭했을 때 이벤트를 발생시키거나 선택한 요소에 강제로 더블클릭 이벤트를 발생

기본형
① dblclick 이벤트 등록
$("이벤트 대상 선택").dblclick(function() {자바스크립트 코드;});
$("이벤트 대상 선택").on("dblclick", function() {자바스크립트 코드;});

② dblclick 이벤트 강제 발생
$("이벤트 대상 선택").dblclick();

 

3) <a>, <form> 태그에 클릭 이벤트 적용 시 기본 이벤트 차단하기

기본형
① return false를 이용한 차단 방식
$("a 또는 form").이벤트 메소드(function() {
  자바스크립트 코드;
  return false;
});

② preventDefault() 메소드를 이용한 차단 방식
$("a 또는 form").이벤트 메소드(function() {
  preventDefault()
  자바스크립트 코드;
});

4) mouseover() / mouseout() / hover() 이벤트 메소드

- mouseover() 이벤트 메소드 : 선택한 요소에 마우스 포인터를 올릴 때마다 이벤트 발생

- mouseout() 이벤트 메소드 : 선택한 요소에서 마우스 포인터가 벗어날 때마다 이벤트 발생, 선택한 요소에 mouseout 이벤트 강제로 발생

- hover() 이벤트 메소드 : 선택한 요소에 마우스 포인터가 올라갈 때와 벗어날 때 각각 이벤트 발생, 각각 다른 이벤트 핸들러 실행

기본형
① mouseover 이벤트 등록
$("이벤트 대상 선택").mouseover(function() {자바스크립트 코드;});
$("이벤트 대상 선택").on("mouseover", function() {자바스크립트 코드;});

② mouseover 이벤트 강제 발생
$("이벤트 대상 선택").mouseover();
① mouseout 이벤트 등록
$("이벤트 대상 선택").mouseout(function() {자바스크립트 코드;});
$("이벤트 대상 선택").on("mouseout", function() {자바스크립트 코드;});

② mouseout 이벤트 강제 발생
$("이벤트 대상 선택").mouseover();
① hover 이벤트 등록
$("이벤트 대상 선택").hover(
  function() {마우스 오버 시 실행될 코드},
  function() {마우스 아웃 시 실행될 코드}
);

 

5) mouseenter() / mouseleave() 이벤트 메소드

- mouseenter() 이벤트 메소드 : 대상 요소의 경계 범위에 마우스 포인터가 들어오면 이벤트 발생

- mouseleave() 이벤트 메소드 : 대상 요소의 경계 범위에 마우스 포인터가 완전히 벗어나면 이벤트 발생

기본형
① mouseenter 이벤트 등록
$("이벤트 대상 선택").mouseenter(function() {자바스크립트 코드;});
$("이벤트 대상 선택").on("mouseenter", function() {자바스크립트 코드;});

② mouseenter 이벤트 강제 발생
$("이벤트 대상 선택").mouseenter();
① mouseleave 이벤트 등록
$("이벤트 대상 선택").mouseleave(function() {자바스크립트 코드;});
$("이벤트 대상 선택").on("mouseleave", function() {자바스크립트 코드;});

② mouseleave 이벤트 강제 발생
$("이벤트 대상 선택").mouseleave();

6) mousemove() 이벤트 메소드

기본형
① mousemove 이벤트 등록
$("이벤트 대상 선택").mousemove(function() {자바스크립트 코드;});
$("이벤트 대상 선택").on("mousemove", function() {자바스크립트 코드;});

② mousemove 이벤트 강제 발생
$("이벤트 대상 선택").mousemove();

 

3. 소스 코드 및 실행 결과

- jq_event1_5_test.html

<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8">
		<title> 이벤트 </title>  
		<script src="js/jquery.js"></script>
		<script>
			$(function( ) {
				$(".btn1").on("click",function(e){
					e.preventDefault();
					$(".txt1").css({"background-color" : "#ff0"});
				});

				$(".btn2").on("click", function(e){
					$(".txt2").css({"background-color" :"#0ff"});
				});

				$(".btn3").on("dblclick", function(){
					$(".txt3").css({"background-color" : "#0f0"});
				});
			});
		</script>
	</head>
	<body>
		<p><a href="http://www.easyspub.co.kr/" class="btn1">버튼1</a></p>
		<p class="txt1">내용1</p>
		<p><a href="http://www.easyspub.co.kr/" class="btn2">버튼2</a></p>
		<p class="txt2">내용2</p>
		<p><button class="btn3">버튼3</button></p>
		<p class="txt3">내용3</p>
	</body>
</html>

jq_event1_5_test.html

- jq_event1_6_test.html

<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8">
		<title> 이벤트 </title>  
		<script src="js/jquery.js"></script>
		<script>
			$(function( ) {
				$(".btn1").on({
					"mouseover" : function(){
						$(".txt1").css({"background-color":"yellow"});
					},
					"mouseout" : function(){
						$(".txt1").css({"background":"none"});
					}
				});

				$(".btn2").hover(function(){
					$(".txt2").css({"background-color":"aqua"});
				}, function() {
					$(".txt2").css({"background":"none"});
				});
			});
		</script>
	</head>
	<body>
		<p><button class="btn1">Mouse Over/Mouse Out</button></p>
		<p class="txt1">내용1</p>
		<p><button class="btn2">Hover</button></p>
		<p class="txt2">내용2</p>
	</body>
</html>

jq_event1_6_test.html

- jq_event1_7_test.html

<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8">
		<title> 이벤트 </title>  
		<script src="js/jquery.js"></script>
		<script>
			$(function( ) {
				$("#box_1").on("mouseout", function(){
					$("#box_1").css({"background-color":"yellow"});
				});

				$("#box_2").on("mouseleave", function(){
					$("#box_2").css({"background-color":"pink"});
				});
			});
		</script>
	</head>
	<body>
	<h1>mouseout</h1>
	<div id="box_1">
					<p><a href="#">내용1</a></p>
					<p><a href="#">내용2</a></p>
					<p><a href="#">내용3</a></p>
	</div>

	<h1>mouseleave</h1>
	<div id="box_2">
					<p><a href="#">내용4</a></p>
					<p><a href="#">내용5</a></p>
					<p><a href="#">내용6</a></p>
	</div>
	</body>
</html>

jq_event1_7_test.html

- jq_event1_8_test.html

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title> 이벤트 </title>  
        <script src="js/jquery.js"></script>
        <script>
            $(function( ) {
                $(document).on("mousemove", function(e) {
                   $(".posX").text(e.pageX);
                   $(".posY").text(e.pageY); 
                });
            });
        </script>
    </head>
    <body>
    <h1>mousemove</h1>
    <p>X : <span class="posX">0</span>px</p>
    <p>Y : <span class="posY">0</span>px</p>
    </body>
</html>

jq_event1_8_test.html