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和css写一个可以自动隐藏的悬浮框
Mar 05 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
使用mini-define实现前端代码的模块化管理
Dec 25 Javascript
jQuery中outerWidth()方法用法实例
Jan 19 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
Apr 06 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
Dec 12 Javascript
如何提高Dom访问速度
Jan 05 Javascript
求js数组的最大值和最小值的四种方法
Mar 03 Javascript
解决LayUI表单获取不到data的问题
Aug 20 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
Nov 07 Javascript
浅谈JavaScript浅拷贝和深拷贝
Nov 07 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
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
js实现简单的可切换选项卡效果
2015/04/10 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
少先队学雷锋活动月总结
2014/03/09 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
综合测评个人总结
2015/03/03 职场文书
就业推荐表院系意见
2015/06/05 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB