jQuery定义插件的方法
有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery。我曾经也是这样的人,直到有一次公司里的技术交流,我才改变了自己对自己的看法。
扩展jquery的时候。最核心的方法是以下两种:
$nd(object) 可以理解为jquery添加一个静态方法
$nd(object) 可以理解为jquery实例添加一个方法
$nd(object)
例子:
/* $nd 定义与调用* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */$nd({ fun: function () { alert("执行方法一"); } });//定义$();//调用$ntd(object)/* $nd 定义与调用* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */$nd({ fun: function () { alert("执行方法"); } });$(this)();//等同于$ = function () { alert("执行方法三"); }$(this)();
定义jquery插件的基本结构
1. 定义作用域:
为插件定义一个私有作用域。外界代码不能直接访问插件内部。插件内部代码不受外界干扰,也不会污染到全局变量。
//step 定义JQuery的作用域(function ($) {})(jQuery);
2. 为插件添加扩展方法:
//step01 定义JQuery的作用域(function ($) { //step02 插件的扩展方法名称 $Slider = function (options) { }})(jQuery);
3. 设置默认值:
//step 定义JQuery的作用域(function ($) { //step-a 插件的默认值属性 var defaults = { prevId: ‘prevBtn‘, prevText: ‘Previous‘, nextId: ‘nextBtn‘, nextText: ‘Next‘ //…… }; //step 插件的扩展方法名称 $Slider = function (options) { //step-b 合并用户自定义属性,默认属性 var options = $nd(defaults, options); }})(jQuery);
其中:var options = $nd(defaults, options)的含义了。表示 options 去覆盖了defaults的值,并把值赋给了options。
在插件环境中,就表示用户设置的值,覆盖了插件的默认值;如果用户没有设置默认值的属性,还是保留插件的默认值。
4. 支持jquery选择器:
//step 定义JQuery的作用域(function ($) { //step-a 插件的默认值属性 var defaults = { prevId: ‘prevBtn‘, prevText: ‘Previous‘, nextId: ‘nextBtn‘, nextText: ‘Next‘ //…… }; //step 插件的扩展方法名称 $Slider = function (options) { //step-b 合并用户自定义属性,默认属性 var options = $nd(defaults, options); //step 支持JQuery选择器 (function () { }); }})(jQuery);
5 .支持JQuery的链接调用:
为了能达到链接调用的效果必须要把循环的每个元素return
//step 定义JQuery的'作用域(function ($) { //step-a 插件的默认值属性 var defaults = { prevId: ‘prevBtn‘, prevText: ‘Previous‘, nextId: ‘nextBtn‘, nextText: ‘Next‘ //…… }; //step 插件的扩展方法名称 $Slider = function (options) { //step-b 合并用户自定义属性,默认属性 var options = $nd(defaults, options); //step 支持JQuery选择器 //step 支持链式调用 return (function () { }); }})(jQuery);
6. 插件里的方法:
在插件里定义的方法,外界不能直接调用,我在插件里定义的方法也没有污染外界环境。
//step01 定义JQuery的作用域(function ($) { //step03-a 插件的默认值属性 var defaults = { prevId: ‘prevBtn‘, prevText: ‘Previous‘, nextId: ‘nextBtn‘, nextText: ‘Next‘ //…… }; //step06-a 在插件里定义方法 var showLink = function (obj) { $(obj)nd(function () { return "(" + $(obj)("href") + ")" }); } //step02 插件的扩展方法名称 $Slider = function (options) { //step03-b 合并用户自定义属性,默认属性 var options = $nd(defaults, options); //step4 支持JQuery选择器 //step5 支持链式调用 return (function () { //step06-b 在插件里定义方法 showLink(this); }); }})(jQuery);
通过以上内容给大家介绍了jQuery定义插件的方法,希望大家喜欢。
-
浅析JavaScript基本类型与引用类型
两种类型:ECMAScript变量包含两种不同类型的值:基本类型值、引用类型值;基本类型值:指的是保存在栈内存中的简单数据段;引用类型值:指的是那些保存在堆内存中的`对象,意思是,变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,由该位置保存对象;两种访问方...
-
php程序员的简历模板
日子如同白驹过隙,新一轮的招聘又在朝我们招手,这时一份好的简历可以起到很好的.作用哦。那么如何写简历才简练、明确呢?以下是小编收集整理的php程序员的简历模板,希望能够帮助到大家。基本简历姓名:黄先生国籍:中国现在所在地:广州民族:汉族户口所在地:潮州身材:170cm...
-
PHP开发工程师的主要职责
PHP开发工程师的主要职责1职责:1、负责公司后端的研发,保障系统的稳定性和质量2、与业务需求部门及项目经理沟通,理解需求,进行架构设计;3、搭建开发框架、负责核心代码的编写,解决技术难点;4、界定、分析和解决系统中存在的问题和缺陷;5、对系统进行持续改进,提升系...
-
关于HTML meat作用
meta标签用于网页的与中,meta标签的用处很多。meta的属性有两种:name和http-equiv。name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是descrip...