(function ($) { //플러그인에 필요한 저장소 속성 필드 var PagerFields = { }; //Private 플러그인의 함수 function setImageButtonSate() { } //플러그인의 공용 함수 var method = { _pagerFields: null, ini: 함수 (옵션) { }, destory: 함수(옵션) { return $(this).each(function () { var $this = $(this); $this.removeData ('HGPager2'); }); } }; //플러그인 정의 $.fn.HGPager2 = function () { var 메소드 = 인수 [0]; if (메소드[메서드]) { 메소드 = 메소드[메서드]; arguments = Array.prototype.slice.call(arguments, 1) else if (typeof (메서드) == '객체' || !method) { method =method.ini; } else { $.error('메서드 '메서드'는 그렇지 않습니다. jQuery.pluginName에 존재'); return this; } return method.apply(this, 인수) })(jQuery); > 이 구조는 "jQuery 플러그인 개발에 대한 심층적 이해" 기사의 패턴을 기반으로 합니다. (개인적으로 좋은 글입니다. 플러그인 작성을 이제 막 배우고 있는 친구들은 이 글을 먼저 읽어보는 것이 좋습니다. ). 전체 플러그인 정의와 해당 개인 변수 함수는 $(function(){});로 래핑됩니다. 이런 방식으로 플러그인의 프라이빗 변수의 보안을 보호할 수 있으며, 다른 관점에서는 변수 이름 중복으로 인한 문제를 피할 수도 있습니다. $.fn.HGPager2 = function(){} 함수에 전용 변수를 넣으면 플러그인의 일부 매개변수 정보(예: 현재 페이지 번호, 현재 페이지 크기 등), 정확한 매개변수 정보를 얻을 수 없습니다. 왜냐하면 js의 범위 이론에 따라 플러그인 구성 시 매개변수 정보가 나중에 함수에 입력되는 범위와 다르기 때문입니다. 위 모드에서는 플러그인 구성 시 입력한 범위와 플러그인 함수 호출 시 입력한 범위가 동일하도록 보장합니다.
플러그인의 다양한 부분은 아래에 나열되어 있습니다
이것은 PagerFields 클래스에 저장되는 플러그인의 개인 변수입니다.
코드 복사
코드는 다음과 같습니다.var PagerFields = { pageSize: 10, / /페이지 크기
pageCount: 0,//페이지 수
recordCount: 0,//총 레코드 수 currentPage: 0,//현재 페이지 번호 pagerFunction: null / /데이터 읽기를 위해 페이지 기능을 넘길 때 호출이 트리거됩니다. }
페이지 버튼의 상태를 설정하는 플러그인의 비공개 기능입니다(복사해서 붙여넣으면 버튼 이미지가 업로드되지 않습니다). 코드를 직접 입력하면 이미지가 없습니다)
코드 복사
코드는 다음과 같습니다. function setImageButtonSate() { if (PagerFields.currentPage < ;= 1)
$("#HG_pagerPre").css("BackgroundPosition", "-3px -3px") //회색 사전
else $("#HG_pagerPre").css( "BackgroundPosition", "-3px -19px"); // 검정색 사전 if (PagerFields.currentPage == PagerFields.pageCount) $(" #HG_pagerNext").css("BackgroundPosition", "-20px -3px"); //회색 다음 else $("#HG_pagerNext").css("BackgroundPosition", "-20px -19px" ); // black next }