지난 강습에는 jquery 의 기본 설정 및 로딩 이벤트를 바인딩하는 법에 대해 간단히 다루었다.


이번에는 클릭이벤트를 다는 법~에 대해 간단히 다루어 보도록 하겠다.



jquery 기본 syntax>

$(셀렉터).action()


$(document).ready(function(){});


지난 시간 이 구문도 같은 원리이다. document 가 로드되어 dom 을 사용할수 있게 되었을때 function 안에 구문이 동작하라는 의미이다.


click event syntax>

$(셀렉터).click(실행될 function) 


위와 같은 방식으로 클릭 이벤트를 해당 객체에 바인딩할 수 있다.

단~ 지난번 내용인 로딩 이벤트 안 또는 다른 이벤트 실행 이후에 바인딩해야 한다.

이유는 스크립트는 컴파일이 미리 되어있지 않은 언어이기 때문에 순차적으로 실행한다.


로딩 이벤트에 처리 안했다면 다음과 같은 상황이 된다.



코드로는 다음과 같다.


방법 A.

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>jquery basic</title>

<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>

<script type="text/javascript">

        $("#clickBtn").click(function(){

               alert("버튼 클릭");

        });

</script>

</head>

<body>

        <input type="button" id="clickBtn" value="버튼" />

</body>

</html>


방법 B.

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>jquery basic</title>

<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>

</head>

<body>

        <input type="button" id="clickBtn" value="버튼" />

</body>

<script type="text/javascript">

        $("#clickBtn").click(function(){

               alert("버튼 클릭");

        });

</script>

</html>


방법 A 의 경우에는 script 동작 시점에 버튼을 찾지 못했기 때문에 바인딩할 요소가 없어서 이벤트가 바인딩 되지 않는다.

방법 B 의 경우는 button 객체 생성이후이기 때문에 바인딩이 된다.


이러한 차이가 없이 프로그래밍하기 위해서는 로딩완료 시점에 바인딩을 해주면 된다.


$(function(){

  $("#clickBtn").click(function(){

     alert("버튼 클릭");

});

});


여기서 또 하나~!

버튼을 선택하기 위해서 #clickBtn 을 사용하였는데 이를 셀렉터라고 한다.

우선 이번에는 간단히 이야기하자면

# 을 붙이면 id 를 가르킨다.

즉 clickBtn 이라는 id 를 가진 요소에 이벤트를 달았다고 생각하면 된다.


다음 장에서는 셀렉터에 대해 이야기 하도록 해보자.



'IT > jquery' 카테고리의 다른 글

[제이쿼리(jQuery)] lesson 5  (0) 2014.11.24
[제이쿼리(jQuery)] lesson 4  (0) 2014.11.24
[제이쿼리(jQuery)] lesson 3  (0) 2014.11.24
[제이쿼리(jQuery)] lesson 1  (0) 2014.11.24
JQuery의 when  (0) 2014.11.21



제이쿼리(Jquery) 란?


제이쿼리(jquery)는 자바스크립트로 된 프레임웍으로 프로그래머의 브라우져별 자바스크립트의 api 차이를 고려할 필요없이 동일한 코드의 작성을 지원하며, 자바스크립트의 코딩을 단순화 하였다.


즉 간단히 제이쿼리는 자바스크립트를 편리하게 사용하게 해주는 라이브러리 정도로 생각하면 된다.




자 그럼 jquery를 사용하기 위해서는 어떻게 해야하는가?

 

1.Jquery 의 CDN 주소로 포함시킨다.


      CDN 은 Contents Delivery Network 의 약자. 간단히 외부서버에서 제공하는 jquery를 include 시킨다고 생각하면 된다.


자바스크립트 라이브러리들의 cdn 주소를 확인하는 사이트 : https://cdnjs.com/



jquery 홈페이지에서 cdn 주소확인 : http://jquery.com/download/

 


 

다음의 구문을 소스에 포함시킨다.


<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>


따라서 우리는 위와 같이 jquery를 포함 시킬 것이다.(cdn 으로 jquery 를 제공하는 곳은 많기 때문에 꼭 위와 동일하지 않아도 된다)



 

2. 해당 시스템 또는 로컬 서버에 해당파일은 포함시키고 해당 주소를 작성 화면에 포함 시킨다.


http://jquery.com/download/ 에서 해당 jquery 다운로드 받고 로컬서버등에 위치시킨다.

 

<script src="jquery 파일의 주소"></script>

 

 



자 간단하게 cdn으로 jquery를 실행해 보자.



소스는 다음과 같다.


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>jquery basic</title>

<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>

<script type="text/javascript">

        jQuery(document).ready(function() {

               alert("hello jquery");

        })

</script>

</head>

<body>

</body>

</html>


hello jquery 라는 alert 창이 떳다면 정상 작동한 것이다.



이것을 자바스크립트로 구현하면 다음과 같다.


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>javascript</title>

<script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>

<script type="text/javascript">

        function init(){

               alert("hello javascript");

        }

</script>

</head>

<body onload="init()">

</body>

</html>



둘 예시는 화면이 로드되는 시점에 alert의 내용을 도시하는 내용이다.


jquery 의 ready 이벤트는 다음과 같이 축약이 가능하다. 


방식 1.

jQuery(document).ready(function() {

        alert("hello jquery");

})


방식 2. jQuery 를 $ 로 축약( jQuery  = $  동일하게 사용이 가능하다)

(document).ready(function() {

        alert("hello jquery");

})


방식 3. ready 생략

(function() {

        alert("hello jquery");

})


3가지의 결과는 동일하게 나온다.


첫강 끝~

'IT > jquery' 카테고리의 다른 글

[제이쿼리(jQuery)] lesson 5  (0) 2014.11.24
[제이쿼리(jQuery)] lesson 4  (0) 2014.11.24
[제이쿼리(jQuery)] lesson 3  (0) 2014.11.24
[제이쿼리(jQuery)] lesson 2  (0) 2014.11.24
JQuery의 when  (0) 2014.11.21

+ Recent posts