>  기사  >  php教程  >  jQuery 플러그인 개발 방법에 대한 자세한 설명

jQuery 플러그인 개발 방법에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-12-05 16:06:101660검색

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을 사용하여 다음을 볼 수 있습니다.

jQuery 플러그인 개발 방법에 대한 자세한 설명

위의 내용은 다음과 같습니다.

$.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단계는 현재 플러그인에서 내부적으로 사용할 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.