봉봉의 개인 블로그

2017-07-19-T(JQuery 플러그인 제작 및 콜백함수 및 바로호출 본문

학원에서 배운것들/TEA - T

2017-07-19-T(JQuery 플러그인 제작 및 콜백함수 및 바로호출

봉봉이네 2017. 7. 19. 13:43
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> -->
<script src="<%=request.getContextPath()%>/js/jquery-3.2.1.js"></script>
</head>
<body>
<button type="button" id="ex" name="extest"> 추가 </button>
<span>1</span><span>2</span><span>3</span>
<script type="text/javascript">
    //플러그인제작하기
    (function($){
        $.fn.mySpanSearch = function(myfn){
            return this.each(function(){
                $(this).click(myfn)
            });
        }
    })(jQuery);
    $(document).ready(function(){
        $('span').mySpanSearch(function(){
            console.log($(this).text());
            alert($(this).text());
        });
    });
    
    //콜백함수
    var myfn = function(fn){
        fn('콜백함수호출');
    }
    myfn(function(msg){
        alert(msg)
    });
    $('#ex').click(function(e1,e2,e3){
        console.log(e1,e2,e3)
    });
    //함수명 없이 바로 실행시키기
    (function(msg){
        alert(msg)
    })('저는 함수 입니다.');
    //위와 같은 실행을 보임 = 간략한 바로 실행을 위해선 위의 실행방법 추천
    var callFn = function(msg){
        alert(msg);
    }
    callFn('함수함수 우왕함수');
</script>
</body>
</html>
cs

먼저 플러그인 제작에 대해서 먼저 설명하겠다.

플로그인을 제작할때 16~22번문 같이 적어주게 된다.

설명을 조금 하면 먼저 16번줄에서 매개변수 값으로 $를 받는 함수를 만들고 그 함수의 내용은 17~21번째 줄까지 적혀있고 22번째 줄에서 매개변수 값으로 제이쿼리를 넣어준것이다. 지금은 클릭이벤트를 만든것이다.

클릭이벤트롤 mySpanSearch 에 담았기에 이제 23번째줄에서 28번째 줄과 같이 적어주게 되고

24번줄과같이 하게 되면 span이라는 태그를 가진것을 눌렀을때 클릭이벤트가 발생하게 되는것이다.

그리고 클릭했을때 그안에 function 안에 있는 것들이 또 실행되게 되는것이다.

다음은 콜백함수에 대해서 설명하겠다.

먼저 31번줄과 같이 myfn이라는 함수를 만들어줍니다 이 함수는 fn을 매개변수로 가지게 되는데 그 fn안에는 콜백함수 호출이라는 text 가 들어있다 그리고 34번줄에서 myfn함수를 호출하게 되고 그 안에는 매개변수 값으로 받는 fn의 text 가 있게 되고 그 text를 받아서 뒤에 msg안에 들어가서 alert창이 뜨게 되는것이다. 그와마찬가지로 37번줄~39번줄까지의 문장을 통해 클릭이벤트에 관해 어떤 정보값이 들어왔는지 콜백함수를 이용하여서 확인할수도 있게 된다.


다음으로는 바로호출에 관련해서 알아보겠다.

먼저 40~43번째 줄까지를 먼저 보면 

(function(msg){

alert(msg)

}) 부분까지가 바로 메서드 부분처럼 생각하면되고 뒤에 ('저는 함수입니다'); 이부분이 메서드에 들어가는 매개변수라고 생각하면 내용이 어느정도는 이해가 될것이다.

44~48번째줄까지도 같은 실행 방법이다 그렇지만 하나는 함수명 없이 그냥 호출한것이고 하나는 함수명에 따라서 호출한게 되어버린것이다.

'학원에서 배운것들 > TEA - T' 카테고리의 다른 글

2017-07-12-Entity Relationship Diagram  (0) 2017.07.12
2017-07-11-T(게시판 editor)이미지 업로드 가능  (0) 2017.07.11
2017-07-10-T(mock up)  (0) 2017.07.10
2017-06-30-T  (0) 2017.06.30
2017-06-29-T  (0) 2017.06.29
Comments