jQuery插件开发

注意事项:

  1. 插件的文件命名必须严格遵循jQuery.[插件名].js的规则,以便于与其他js文件的区分,如新插件文件jquery.newplug.js。
  2. 如果是对象级别插件,所有方法都应依附于jquery.fn主体对象,如果是类级别的插件,所有的方法都应依附于jquery 对象。
  3. 无论是对象级别的插件还是类级别的插件,结尾都必须以分号结束,否则,在文件压缩时,会出现错误提示消息。
  4. 在插件内部的代码中,如果要访问每个元素,可以使用this.each方法来遍历全部元素。
  5. 在插件内部,this所代表的是通过jQuery选择器选取的对象,而非传统意义上的对象引用。
  6. 由于jQuery代码在调用方法时,可以采用链写的方法同时调用多个方法,因此为了保证这个功能的实现,插件本身必须返回一个jQuery对象。
  7. 虽然“$”美元符,可以与jQuery字符相代替,但是在编写插件代码中,尽量不要使用“$”符号,以避免和别的代码冲突。
  8. 在编写对象级别的插件时,使用jQuery.fn.extend()方法进行扩展,而针对类级别的插件,则使用jQuery.extend() 方法进行扩展。

对象级别的插件开发

jquery.liFocusColor.js

 1 /*------------------------------------------/
 2  功能:设置列表项中获取鼠标焦点时的背景色
 3  参数: li_color 可选
 4  返回:原调用对象
 5  实例:$("ul").focusColor("red");
 6  /------------------------------------------*/
 7 ;
 8 (function($) {
 9     $.fn.extend({
10         focusColor : function(li_color) {
11             var def_color = "#ccc";// 获取焦点的默认颜色
12             var lst_color = "#fff";// 失去焦点的默认颜色
13             li_color = (li_color == undefined) ? def_color : li_color;
14             $(this).find("li").each(function() {
15                 $(this).mouseover(function() {
16                     $(this).css("background-color", li_color);
17                 });
18                 $(this).mouseout(function() {
19                     $(this).css("background-color", lst_color);
20                 });
21             });
22             return $(this);// 返回$对象,保持链式操作
23         }
24     });
25 })(jQuery);

类级别的插件开发

jquery.towOperateResult.js

 1 /*------------------------------------------/
 2  功能:计算两个数相加的结果
 3  参数: 数字p1,p2
 4  返回:两个数相加或相减的结果
 5  实例:$.addNum(1,2);
 6  /------------------------------------------*/
 7 ;
 8 (function($) {
 9     $.extend({
10         "addNum" : function(p1, p2) {
11             p1 = (p1 == undefined) ? 0 : p1;
12             p2 = (p2 == undefined) ? 0 : p2;
13             return parseInt(p1) + parseInt(p2);
14         },
15         "subNum" : function(p1, p2) {
16             p1 = (p1 == undefined) ? 0 : p1;
17             p2 = (p2 == undefined) ? 0 : p2;
18             return parseInt(p1) - parseInt(p2);
19         }
20     });
21 })(jQuery);

 

posted on 2014-06-30 10:04  森丨丶凯旋  阅读(235)  评论(0编辑  收藏  举报

导航