-
jQuery 사용자 정의 메소드 만들기 ($.fn 확장)jQuery 2020. 5. 30. 17:43반응형
$.fn
$("a").text("바로가기");
이렇게 jQuery Selector 를 이용하는 메소드를 추가하려면 $.fn.메소드명 을 통해 추가하면 된다.
예제) 값을 콘솔로 출력하는 함수 만들기
(function($) { $.fn.getPrint = function(){ var value = this.val(); console.log(value) //return this; 생략 가능. }; }(jQuery));
jQuery 에서 사용하는 $ 변수는 다른 라이브러리들도 많이 사용한다. 그래서 변수가 충돌하여 동작을 하지 않을 가능성이 항상 있다.(jQuery의 경우 $ 변수는 jQuery 변수의 별칭 임) 우리가 만드는 플러그인이 이러한 충돌을 피할 수 있도록 즉시 호출 함수 표현을 사용해서 감싸 준다.
(function ($) { }(jQuery));
즉시 호출 함수표현을 사용하는 또 다른 주된 목적은 플러그인 자신의 private변수를 가질 수 있다는 것이다.
this란 $("셀렉터")를 통해 들어온 jQuery Object 를 뜻한다.
return 이 없는 함수는 return this를 생략해도 되지만 다음과 같이 jQuery 메소드를 이어서 호출 할 수 없다.
$("input").getPrint().show();
$.fn 의 최종 목적은 셀렉터를 이용할 수 있는 확장 메소드를 구현하는 것이다.
셀렉터를 이용하지 않는 $.ajax 와 같은 메소드 구현은 다음과 같다.
$.getPrint = function(){ console.log('no Selector Fn'); };
반응형'jQuery' 카테고리의 다른 글
[jQuery] jQuery on("click")과 click() 차이는? 그리고.off() (0) 2022.05.01 [jQuery] 비동기통신 메소드 $.ajax(), $.get(), $.post() , load() 정리 (0) 2022.02.28 jQuery for each안에서 return false 사용하기 (0) 2020.03.24 제이쿼리(jQuery)로 html 태그 만들기 (0) 2019.10.09 제이쿼리 jQuery closest(), parant(), siblings(), children() (0) 2018.03.03