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 相关文章推荐
JavaScript Perfection kill 测试及答案
Mar 23 Javascript
jQuery的Ajax时无响应数据的解决方法
May 25 Javascript
DWZ刷新dialog解决方法
Mar 03 Javascript
js转化毫秒为时间格式代码
Apr 10 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 Javascript
jQuery图片切换动画效果
Feb 28 Javascript
JSON与JS对象的区别与对比
Mar 01 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
May 02 Javascript
vue使用websocket的方法实例分析
Jun 22 Javascript
Vue动态生成表格的行和列
Jul 18 Javascript
基于Vue和Element-Ui搭建项目的方法
Sep 06 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 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.MVC的模板标签系统(二)
2006/09/05 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
用python登录Dr.com思路以及代码分享
2014/06/25 Python
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
python虚拟环境迁移方法
2019/01/03 Python
简单了解django缓存方式及配置
2019/07/19 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
如何学习Python time模块
2020/06/03 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
销售人员求职信
2014/07/22 职场文书
考试作弊检讨
2015/01/27 职场文书
工程质量保证书
2015/05/09 职场文书