详解jQuery插件开发方式

Query插件开发 jquery

通常来讲,jQuery插件的开发分为两种:一种是挂在jQuery命名空间下的全局函数,也可称为静态方法;另外一种是jQuery对象级别的方法,即挂在jQuery原型下的方法,这样经过选择器获取的jQuery对象实例也能共享该方法。ajax

1、jQuery扩展bootstrap

  一、$.extend(object)jquery插件

  相似于.Net的扩展方法,用于扩展jQuery。而后就能够用$.的方式调用。异步

?函数

1ui

2this

3google

4spa

$(function(){

$.extend({ fun1: function () { alert("为jQuery扩展一个fun1函数!"); } });

$.fun1();

})

  二、$.fn.extend(object)

  扩展jQuery的对象。

?

1

2

$.fn.extend({ fun2: function () { alert("执行方法2"); } });

$("#id1").fun2();

  能够用google来看看:

  上面的写法等同于:

?

1

2

$.fn.fun2 = function () { alert("执行方法2"); }

$(this).fun2();

2、私有域

  其定义方式以下:

?

1

2

3

4

(function ($) { })(jQuery);

//至关于

var fn = function (xxoo) { };

fn(jQuery);

  如下代码弹出123。

?

1

2

3

4

$(function(){

var fn = function (xxoo) { };

fn(alert(123));

})

3、定义插件的基本步骤

  一、定义做用域

  开发一个jQuery插件,首先要把插件的代码与外界隔离开来,外部的代码不容许直接访问插件内部的代码,插件内部的代码也不影响外部。

    //步骤1 定义插件私有做用域

?

1

2

3

(function ($) {

 

})(jQuery);

 这样就能保证插件内部的代码与外界隔离了。

  二、扩展jQuery

  定义了做用域以后,为了可以让外部调用,就须要将插件扩展到jQuery。

?

1

2

3

4

5

6

7

//步骤1 定义私有做用域

 (function ($) {

 //步骤2 插件的扩展方法名称

 $.fn.MyFrame = function (options) {

   

 }

 })(jQuery);

    三、默认值

  定义了jQuery插件以后,若是但愿某些参数具备默认值,那么能够以这种方式来指定。

?

1

2

3

4

5

6

7

8

9

10

11

12

//步骤1 定义私有做用域

 (function ($) {

 //步骤3 插件的默认值属性

 var defaults = {

  Id: '#id1',

 };

 //步骤2 插件的扩展方法名称

 $.fn.MyFrame = function (options) {

  //步骤3 合并用户自定义属性,默认属性(若是options为空,则使用defaults)

  var options = $.extend(defaults, options);

 }

 })(jQuery);

     四、支持jQuery选择器

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//步骤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);

    五、支持jQuery的链式调用

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

//步骤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);

     六、插件内部方法

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//步骤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的私有函数目前容许的插件内部使用。

 以上就是本文的所有内容,但愿对你们有所帮助,谢谢对脚本之家的支持!

您可能感兴趣的文章:

相关文章
相关标签/搜索