对于jquery插件,一直以来,更多地只是使用别人的插件、修改别人的插件。今天就费点功夫,自己来折腾一下自定义的jquery插件编写,重点是:jquery 对象级别的插件(即封装方法插件)。
从步步折腾到最终编写出第一个 jquery 插件 demo,中间的确碰了不少的壁。本文就主要记录下成功之后、编写 jquery 对象级别的插件的顺顺步奏。
jquery 插件类别
- 选择器插件,
$.widget()
;极少用,略。 - 类级别插件(封装函数插件),较少用。通过
$.extend()
来给 jQuery 添加静态方法进行扩展。调用时类似于$.ajax() , $.get() , $post() , $.trim()
。如代码:
|
|
- 对象级别插件(封装方法插件),常常用。通过 jquery 获取对象、并为对象添加方法、最后讲将方法封装成插件。易调用,易扩展。下面重点讲。
对象级别插件 demo开发过程
仿 bootstrap 弹窗插件
本 demo 编写一个仿 bootstrap 的弹窗插件 jQuery.myPop.js
;本插件功能简单,主要是为学习插件编写而写;它可以实现弹窗内容的自定义、弹窗各部分背景色的自定义功能。
demo 目录结构
|
|
注意点抢先看
- 插件命名:
jQuery.[插件名].js
,如本弹窗插件命名为:jQuery.myPop.js
。 - 对象级别插件,所有方法均依附于
jquery.fn
主体对象。如本插件里:方法popTxt
,popBgcolor
均依附于$.fn.popPlugin
;下文有详细说明。 - 插件结尾必须以分好
;
结束;为保证起见,插件开头也加上分好,如:;(function($){})(jQuery);
。 - 插件内部,若要遍历(如多个
.class
),用this.each
方法。 系统变量以参数形式传递到插件内部,就有了一个局部变量,可提高一点访问速度;如:
123;(function($,window,document,undefined){//})(jQuery,window,document);
配合插件的 html/css
jquery 插件,自然是依赖 jquery,所以引入 jquery-1.11.3.min.js
和 插件 jQuery.myPop.js
;
弹窗的 html 结构如下代码 pop.html
:
|
|
pop.css
在全文最后再附上。
编写插件 jQuery.myPop.js
插件的主要结构:
|
|
插件的功能补全,其实就是把普通的代码对应地塞进插件结构中;插件完整代码如下(含详细解释):
|
|
插件的调用
在 pop.html
中的 <script>
标签编写调用插件的 js 代码如下(含详细注释):
|
|
至此,第一个 jquery 插件 jQuery.myPop.js
就完成了!
附 pop.css 完整代码
|
|
the end.