티스토리 뷰

Web/JavaScript jQuery

[jQuery] event

mming_0213 2020. 1. 7. 19:10

1. 이벤트란?

 - 시스템에서 일어나는 사건을 의미

 - javascript나 jQuery에게 이벤트란 브라우져에서 일어나는 사건을 의미한다.(클릭, 마우스 이동, 타이핑, 페이지 로딩등)

 - 이벤트가 발생했을 때 작동할 로직을 시스템에게 알려두면 이벤트가 발생했을 때 시스템이 그 로직을 호출한다.

 

2. jQuery의 이벤트

 - 크로스브라우징의 문제를 해결해줌

 - bind로 이벤트 핸들러를 설치하고, unbind로 제거(예제1)

 - trigger로 이벤트 핸들러를 강제로 실행(예제1)

 - click, ready와 같은 다양한 이벤트 헬퍼(helper)를 제공함(예제2)

 - live를 이용하면 현재 존재 하지 않는 엘리먼트에 이벤트 핸들러를 설치할 수 있음

 - 예제1. bind, unbind, trigger를 이용한 이벤트의 설치, 제거, 호출

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>예제1.bind,unbind,trigger를 이용한 이벤트의 설치,제거,호출</title>
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
	 <script type="text/javascript">
          function clickHandler(e){
              alert('thank you');
          }
          $(document).bind('ready', function(){
               $('#click_me').bind('click', clickHandler);
               $('#remove_event').bind('click', function(e){
                   $('#click_me').unbind('click', clickHandler);
               });
               $('#trigger_event').bind('click', function(e){
                   $('#click_me').trigger('click');
               });
           })
        </script>
</head>
<body>
	<input id="click_me" type="button" value="click me" />
	<input id="remove_event" type="button" value="unbind" />
	<input id="trigger_event" type="button" value="trigger" />
</body>
</html>

- 예제2. 이벤트 헬퍼

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>예제2. 이벤트 헬퍼</title>
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
	 <script type="text/javascript">
          function clickHandler(e){
              alert('thank you');
          }
         $(document).ready(function(){
        	$('#click_me').click(clickHandler);
        	$('#remove_event').click(function(e){
        		$('#click_me').unbind('click', clickHandler)
        	});
        	$('#trigger_event').click(function(e){
        		$('#click_me').trigger('click');
        	});
         });
        </script>
</head>
<body>
	<input id="click_me" type="button" value="click me" />
	<input id="remove_event" type="button" value="unbind" />
	<input id="trigger_event" type="button" value="trigger" />
</body>
</html>

- 예제3. live를 이용하면 존재하지 않는 엘리먼트에 대해서 이벤트를 설치할 수 있다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>예제3. live를 이용하면 존재하지 않는 엘리먼트에 대해서 이벤트를 설치할 수 있다.</title>
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
	 <script type="text/javascript">
        function clickHandler(e){
            alert('thank you');
        } 
       	$('#click_me').live('click', clickHandler);
       	$('#remove_event').live('click', function(e){
       		$('#click_me').die('click', clickHandler);
       	});
       	$('#trigger_event').live('click', function(e){
       		$('#click_me').trigger('click');
       	});
        </script>
</head>
<body>
	<input id="click_me" type="button" value="click me" />
	<input id="remove_event" type="button" value="unbind" />
	<input id="trigger_event" type="button" value="trigger" />
</body>
</html>

 

더보기

<실행결과>

 

 

'Web > JavaScript jQuery' 카테고리의 다른 글

[jQuery] 폼  (0) 2020.01.09
[jQuery] 엘리먼트의 제어  (0) 2020.01.08
[jQuery] chain  (0) 2020.01.07
[jQuery] 선택자  (0) 2020.01.06
[jQuery] wrapper  (0) 2020.01.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
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
글 보관함