博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery插件开发学习笔记
阅读量:6267 次
发布时间:2019-06-22

本文共 1839 字,大约阅读时间需要 6 分钟。

  今天想了解一下jQuery的插件开发,于是google了一下,列在前面的两篇文章都很不错, 更是将插件开发的方方面面细致入微的进行了讲解,并提供了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下载:

  

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

你可能感兴趣的文章
rtf格式的一些说明,转载的
查看>>
REST Security with JWT using Java and Spring Security
查看>>
echarts学习总结(二):一个页面存在多个echarts图形,图形自适应窗口大小
查看>>
IIS7显示ASP的详细错误信息到浏览器
查看>>
使用fiddler对手机APP进行抓包
查看>>
exit和_exit的区别
查看>>
Javascript、Jquery获取浏览器和屏幕各种高度宽度(单位都为px)
查看>>
php不重新编译,安装未安装过的扩展,如curl扩展
查看>>
JavaScript编码encode和decode escape和unescape
查看>>
ppp点对点协议
查看>>
html5游戏开发-简单tiger机
查看>>
Codeforces 712C Memory and De-Evolution
查看>>
编写的windows程序,崩溃时产生crash dump文件的办法
查看>>
Ural2110 : Remove or Maximize
查看>>
Django REST framework 的TokenAuth认证及外键Serializer基本实现
查看>>
《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
查看>>
Spring Boot日志管理
查看>>
动态注册HttpModule管道,实现global.asax功能
查看>>
使用 ES2015 编写 Gulp 构建
查看>>
[转]Using NLog for ASP.NET Core to write custom information to the database
查看>>