jQuery 플러그인 개발
일반적으로 jQuery 플러그인 개발은 두 가지 유형으로 나뉜다. 하나는 jQuery 네임스페이스에 매달려 있는 전역 함수로 정적 메서드라고도 할 수 있다. 다른 하나는 jQuery 객체 수준 메서드, 즉 jQuery 프로토타입 아래에 있는 메서드이므로 선택기를 통해 얻은 jQuery 개체 인스턴스도 이 메서드를 공유할 수 있습니다.
1. jQuery 확장
1. $.extend(object)
.Net 확장 방법과 유사하며 jQuery를 확장하는 데 사용됩니다. 그런 다음 $..를 사용하여 호출할 수 있습니다.
$(function(){ $.extend({ fun1: function () { alert("为jQuery扩展一个fun1函数!"); } }); $.fun1(); })
2. $.fn.extend(object)
jQuery 객체를 확장합니다.
$.fn.extend({ fun2: function () { alert("执行方法2"); } }); $("#id1").fun2();
Google을 사용하여 다음을 볼 수 있습니다.
위의 내용은 다음과 같습니다.
$.fn.fun2 = function () { alert("执行方法2"); } $(this).fun2();
2. 프라이빗 도메인
다음과 같이 정의됩니다.
(function ($) { })(jQuery); //相当于 var fn = function (xxoo) { }; fn(jQuery);
아래와 같은 코드가 123이 뜹니다.
$(function(){ var fn = function (xxoo) { }; fn(alert(123)); })
3. 플러그인 정의를 위한 기본 단계
1. 범위 정의
jQuery 플러그인은 우선 플러그인 코드가 외부 세계와 격리되어야 하며, 외부 코드가 플러그인 내부 코드에 직접 접근할 수 없으며, 플러그인 내부 코드가 영향을 미치지 않습니다. 외부 세계.
//1단계 플러그인 개인 범위 정의
(function ($) { })(jQuery);
이렇게 하면 플러그인 내부의 코드가 외부 세계와 격리되어 있습니다.
2. jQuery 확장
범위를 정의한 후 외부 호출을 허용하려면 플러그인을 jQuery로 확장해야 합니다.
//步骤1 定义私有作用域 (function ($) { //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { } })(jQuery);
3. 기본값
jQuery 플러그인을 정의한 후 일부 매개변수에 기본값을 적용하려면 이 방법을 사용하여 지정할 수 있습니다.
//步骤1 定义私有作用域 (function ($) { //步骤3 插件的默认值属性 var defaults = { Id: '#id1', }; //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults) var options = $.extend(defaults, options); } })(jQuery);
4. jQuery 선택기 지원
//步骤1 定义私有作用域 (function ($) { //步骤3 插件的默认值属性 var defaults = { Id: '#id1', }; //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults) var options = $.extend(defaults, options); } //步骤4 支持jQuery选择器 this.each(function () { }); })(jQuery);
5. jQuery의 체인 호출 지원
//步骤1 定义私有作用域 (function ($) { //步骤3 插件的默认值属性 var defaults = { Id: '#id1', }; //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults) var options = $.extend(defaults, options); } //步骤4 支持jQuery选择器 //步骤5 支持链式调用(将步骤4返回) return this.each(function () { }); })(jQuery);
6. 플러그인 내부 메소드
//步骤1 定义私有作用域 (function ($) { //步骤3 插件的默认值属性 var defaults = { Id: '#id1', }; //步骤6 在插件里定义函数 var MyFun = function (obj) { alert(obj); } //步骤2 插件的扩展方法名称 $.fn.MyFrame = function (options) { //步骤3 合并用户自定义属性,默认属性(如果options为空,则使用defaults) var options = $.extend(defaults, options); } //步骤4 支持jQuery选择器 //步骤5 支持链式调用(将步骤4返回) return this.each(function () { //步骤6 在插件里定义函数 MyFun(this); }); })(jQuery);
범위 관계로 인해 6단계는 현재 플러그인에서 내부적으로 사용할 수 있습니다.