今天想了解一下jQuery的插件开发,于是google了一下,列在前面的两篇文章都很不错,jQuery插件开发全解析 更是将插件开发的方方面面细致入微的进行了讲解,并提供了PDF进行下载。笔者今天详细的阅读了这篇文章并记录了一些笔记。

  1.类级别的插件开发

  我是这样理解的:jQuery是类,$是jQuery的别名,$('selector')为jQuery对象

  这种插件类似为jQuery类添加静态的方法,然后我们就可以像在C#中调用静态方法一样使用插件。添加静态方法的途径有两种:

jQuery.alert = function () {
alert("这是一个jQuery的提示框");
}

jQuery.confirm = function () {
confirm("这是一个JQuery的提示框");
}

  相应的调用:$.alert(); $.confirm();

  另一种方法的代码如下:

jQuery.extend({
alert: function () { alert("这是一个jQuery的提示框"); },
confirm: function () { confirm("这是一个JQuery的提示框"); }
});

  这种是通过jQuery提供的extend方法进行功能的扩展,调用的方法同上。

  另外,为了避免与其它jQuery插件的冲突,我们可以添加自己的命名空间:

jQuery.sample = {
alert: function () { alert("这是一个jQuery的提示框"); },
confirm: function () { confirm("这是一个JQuery的提示框"); }
};

  添加了命名空间后的调用:$.sample.alert(); $.sample.confirm();

  2.对象级别的插件开发

/*

这种写法的说明:
var fn = function(para){
//code...
}
fn(jQuery);

先定义一个方法,再立即执行这个方法
这种写法的好处:我们在写jQuery插件时,也可以使用$这个别名,而不会与prototype引起冲突.

*/
(function ($) {
$.fn.extend({
hilight: function (options) {var opts = $.extend($.fn.hilight.defauts, options);this.css("color", opts.color).css("background-color", opts.bgcolor);
}
});

$.fn.hilight.defauts = {
color: 'red',
bgcolor: 'white'
};
})(jQuery);

  jQuery推荐这种写法,好处就在上面的注释部分。

  在这段代码中我们将defaults暴漏出来,允许用户直接访问并设置defaults值,这样做的好处,是只需要在一处设置默认值以后,别处都可以直接使用,而不用每次传递参数。当然,我们仍然可以传递参数,以改变手工设置的默认值。

  我们还可以通过暴漏defaults的相同方法来暴漏一些可供别人扩展的方法;如果需要将一个方法或属性私有化,只需要在闭包中定义,而不要提供相应的引用。

  3.总结

  jQuery为开发插件提拱了两个方法,分别是:

    jQuery.fn.extend(object); 给jQuery对象添加方法。fn 是什么东西呢?原来 jQuery.fn = jQuery.prototype,jQuery.fn.extend(object)是对jQuery.prototype进行的扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

    jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。可以理解为jQuery添加静态方法。

  

  最后提供相应的pdf下载:《jQuery插件开发全解析》

  

本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2012/04/05/2433483.html,如需转载请自行联系原作者

jQuery插件开发学习笔记相关推荐

  1. jQuery WeUI学习笔记1

    前言:内容基本是参考博客笔记,偶尔会加些个人补充,仅作为复习巩固用途.如有错误,请指出,谢谢. 提示:后续更深理解在补充 前序.使用过程出现的问题 注意:发现问题解决问题比学习新知识更重要 一.jQu ...

  2. JQuery插件开发学习

    插件是JQuery强大之处的体现,把最聪明的功能封装到插件中,可以为你及你的团队节省大量开发时间. 编写一个JQuery插件,在于给JQuery.fn加入新的功能属性,此处添加的对象属性名称就是你插件 ...

  3. JQuery课堂学习笔记

    版权声明:本文为博主原创文章,未经博主允许不得转载.更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/ ...

  4. jQuery api学习笔记

    jQuery事件 各种事件类似点击事件 <html><head> <title>index.jsp</title><script type=&qu ...

  5. jQuery Mobile学习笔记

    1.获取jQuery mobile 文件,访问jQuerymobile网站下载 (貌似使用jquery mobile后,jquery会自动在网页中添加一些class类,第一次知道的我是被吓呆的!!) ...

  6. jQuery 基础学习笔记

    1. jQuery 的执行时间: $(document).ready(function(){--- jQuery functions go here ----// 保证当文档对象加载完成后,进行元素事 ...

  7. Jquery ajax 学习笔记

    本人的js & jq 一直是菜鸟级别,最近不忙就看了看ajax方面的知识,文中部分内容参考自这里&这里 之前一直用js写ajax现在基于jq实现方便多了~ $.get & $. ...

  8. jquery datatables 学习笔记

    最近项目中用到了BootStrap做后台,在选择表格插件的时候发现了jquery datatables. 功能是很强大,但是网上的例子比较少.在经过一段时间的努力可算是搞出来了. 官网地址:http: ...

  9. jQuery基础学习笔记(下)

    8.jQuery的扩展与noConflict 1.jQuery扩展 <script src="../../jquery-2.1.3.min.js"></scrip ...

最新文章

  1. 【每日一算法】行星碰撞
  2. 硬盘满了 mysql启不来_MySQL数据库之磁盘已满造成的mysql启动失败问题分享
  3. linux配置静态ip
  4. Java基础之理解Annotation
  5. C++ STL学习笔记(5) Vector容器, array容器,deque容器
  6. 考研复习(8)-图的基本操作
  7. 基于VS2019+QT的Coin3D三维可视化库的安装预测测试
  8. 《对比Excel,轻松学习Python数据分析》读书笔记------Pandas入门
  9. STM32应用开发实践教程:具备交互功能的人机界面应用开发
  10. php 图片印章_PHP制作中文圆形印章示例
  11. 软件工程-笔记(未整理)
  12. 什么是IDC?IDC数据中心什么意思?
  13. 栈的应用 - 波兰式与逆波兰式
  14. 【microbit】micropython 之 体感遥控器
  15. 闲聊蓝桥杯JAVA - 罗马数字
  16. Python之路 33:进程与线程概念及基础使用
  17. 中国人请客吃饭的传统礼仪
  18. sshfs真是爽啊!
  19. 【Scrapy框架实战】爬取网易严选-苹果12手机热评
  20. 软件测试需要学什么?软件测试难学吗?简单几句让你认识

热门文章

  1. sqlalchemy.exc.DataError: (pymysql.err.DataError) (1366, “Incorrect string value: ‘\\xE6问题解决
  2. ubuntu 18.04.4 安装 bazel
  3. 13.最为经典的动态规划入门
  4. 【建站系列教程】3.1、cookie介绍
  5. 越线人群计数--Crossing-line Crowd Counting with Two-phase Deep Neural Networks
  6. LeetCode 72. Edit Distance--动态规划--Levenshtein Distance Algorithm--Java,Python解法
  7. python字符编码是什么_python3字符编码是什么?怎么用?
  8. java mysql in_MySQL中Exists和In的使用
  9. linux怎么配置命令模式,Linux几种命令模式
  10. java 中常用方法_java_中常用的方法总结