文档章节

详解jQuery插件开发方式

码农般的学良
 码农般的学良
发布于 2016/11/23 13:49
字数 1137
阅读 14
收藏 0

Query插件开发 

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

一、jQuery扩展

  1、$.extend(object)

  类似于.Net的扩展方法,用于扩展jQuery。然后就可以用$.的方式调用。

?

1

2

3

4

$(function(){

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

$.fun1();

})

  2、$.fn.extend(object)

  扩展jQuery的对象。

?

1

2

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

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

  可以用google来看看:

  上面的写法等同于:

?

1

2

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

$(this).fun2();

二、私有域

  其定义方式如下:

?

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));

})

三、定义插件的基本步骤

  1、定义作用域

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

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

?

1

2

3

(function ($) {

 

})(jQuery);

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

  2、扩展jQuery

  定义了作用域之后,为了能够让外部调用,就需要将插件扩展到jQuery。

?

1

2

3

4

5

6

7

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

 (function ($) {

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

 $.fn.MyFrame = function (options) {

   

 }

 })(jQuery);

    3、默认值

  定义了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);

     4、支持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);

    5、支持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);

     6、插件内部方法

?

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

 以上就是本文的全部内容,希望对大家有所帮助,谢谢对脚本之家的支持!

您可能感兴趣的文章:

© 著作权归作者所有

共有 人打赏支持
码农般的学良
粉丝 1
博文 20
码字总数 23265
作品 0
通州
私信 提问
分享26本关于Jquery的学习书籍(免费下载)

分享26本关于Jquery的学习书籍(免费下载) 1、精通JavaScript+jQuery 2、网友small6分享锋利的jQuery实例源码 3、网友small6分享jQuery权威指南配套源代码 4、犀利开发jQuery内核详解与实践...

邓剑彬
2012/11/30
3.3K
8
HTML Jquery EasyUI日期选择框的使用详解

jQuery EasyUI是基于JQuery的一个前台ui界面的插件,功能相对没extjs强大,但页面也是相当好看的。一些功能也足够开发者使用,相对于extjs更轻量。以下是开发中经常使用的HTML Jquery EasyU...

Amamatthew
2014/09/11
0
0
分享40个实用的jQuery用户界面UI设计技巧及教程

作者:Jane Bernardo 翻译:Terry li - GBin1.com 原文: 40 Useful jQuery Techniques And Tutorials For Great User Interface jQuery在web开发中已经吸引了大量开发人员。使用jQuery能构建......

gbin1
2011/07/19
2.1K
0
超强的jquery极品插件--色彩选择器类/ 右键菜单类/ 图片新闻flash展示类

Farbtastic Farbtastic是一个color picker插件。它能够在一个页面中加入多个颜色选择控件,然后每个控件关联到页面中的一个元素比如:文本输入框。 Farbtastic jQuery Color Picker 21世纪开...

晨曦之光
2012/03/09
427
0
jquery常用的插件1000收集

花N长时间积累的Jquery插件,希望大家喜欢。大家还有什么新的插件,请留言,我们一并收录。 感谢大家的支持。 1.accordion类 基于jQuery开发,非常简单的水平方向折叠控件。 Horizontal acc...

Alic
2011/03/07
0
6

没有更多内容

加载失败,请刷新页面

加载更多

Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
1
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0
推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部