jQuery 插件开发指南


Posted in Javascript onNovember 14, 2014

那么首先我们来简单的看一下最正统的 jQuery 插件定义方式:

(function ($) {     

$.fn.插件名 = function (settings) {         

//默认参数         

var defaultSettings = {

 

        }         /* 合并默认参数和用户自定义参数 */        

 

settings = $.extend(defaultSettings, settings);

 

return this.each(function () {             //代码         });   //插件在元素内多次出现

 

} })(jQuery);

 
先来看模板中的第一行代码(当然我们要把这一行代码的后半部分给揪出来一起看,不然第一行就完全无意义了):
(function ($) {

 

})(jQuery);

 这行代码其实是用于创建一个匿名函数。如果你对匿名函数和闭包不了解,将会对这种代码非常疑惑,那么强烈建议您阅读【详谈JavaScript 匿名函数及闭包】这篇文章。

jQuery 的继承方法 $.extend —— $.extend 在jQuery 插件开发中有个很重要的作用,就是用于合并参数。

$.fn.tip = function (settings) {     

var defaultSettings = {            

//颜色     

color: 'yellow',        

//延迟        

timeout: 200     }

 /* 合并默认参数和用户自定义参数 */   

settings = $.extend(defaultSettings, settings);    

alert(settings.input); <br>}

 jQuery 插件定义第二种方式:

(function ($) {

    //插件定义--更换名字

    $.fn.tabpanel = function (method) {

        var methods = $.fn.tabpanel.methods;

        if (methods[method]) {

            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));

        } else if (typeof method === 'object' || !method) {

            return methods.init.apply(this, arguments);

        } else {

 

        }

    }

    //支持的方法

    $.fn.tabpanel.methods =

    {

        //初始化

        init: function (p_options) {

            tabpanelBind(p_options, this);

        },

        add: function (p_options) {

            addTab(p_options, this);

            tabpanelBind(p_options, this);

            // debugger

        }    }

    function add(p_options) {

        var _defaults = {

            id: ""

        }

    <br>
//内部实现略.........<br>        return _index;

    }

<br>})(jQuery);<br><br>调用  $("#team").tabpanel('add',"");

好了,上面介绍的这2种开发方式都是最常用的,小伙伴们先好好学习下吧,后续我们再介绍的更深入些

Javascript 相关文章推荐
大家未必知道的Js技巧收藏
Apr 07 Javascript
javascript 获取表单file全路径
Dec 31 Javascript
取选中的radio的值
Jan 11 Javascript
js克隆对象、数组的常用方法介绍
Sep 26 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
Sep 05 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
Jan 21 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
JavaScript之创意时钟项目(实例讲解)
Oct 23 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
Vue-cli3多页面配置详解
Mar 22 Javascript
javascript中layim之查找好友查找群组
Feb 06 Javascript
使用JavaScript和C#中获得referer
Nov 14 #Javascript
JavaScript window.location对象
Nov 14 #Javascript
详谈JavaScript 匿名函数及闭包
Nov 14 #Javascript
详谈JavaScript内存泄漏
Nov 14 #Javascript
js与C#进行时间戳转换
Nov 14 #Javascript
jquery ui bootstrap 实现自定义风格
Nov 14 #Javascript
使用node.js 制作网站前台后台
Nov 13 #Javascript
You might like
晶体管来复再生式二管收音机
2021/03/02 无线电
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
javascript,jquery闭包概念分析
2010/06/19 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
python错误处理详解
2014/09/28 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
python实现图像外边界跟踪操作
2020/07/13 Python
编写python代码实现简单抽奖器
2020/10/20 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
经济职业学院毕业生自荐书
2014/03/17 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
国际贸易专业求职信
2014/06/04 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
上班迟到检讨书
2015/05/06 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
Nginx反向代理、重定向
2022/04/13 Servers