欢迎来到天天文库
浏览记录
ID:17391146
大小:39.00 KB
页数:11页
时间:2018-08-30
《如何写jquery插件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、如何写jQuery插件JQueryPlugin插件,如果大家不明白什么是JQuery插件或都不清楚如何编写可以查看其官方的网站:jQueryAuthoringGuidelines好了,下面有一些我觉得想做一个好的插件必须应有的要求:1、在JQuery命名空间下声明只声明一个单独的名称2、接受options参数,以便控制插件的行为3、暴露插件的默认设置,以便外面可以访问4、适当地将子函数提供给外部访问调用5、保持私有函数6、支持元数据插件下面将逐条地过一遍:只声明一个单独的名称这表明是一个单独的插件脚本。如果你的脚
2、本包含多个插件或者是互补的插件(像$.fn.doSomething()和$.undoSomething()),那么你可以根据要求声明多个名称。但一般情况下,力争用单一的名称来维持插件现实的所有细节。在本例中,我们将声明一个叫“hilight”的名称Js代码//插件的定义$.fn.hilight=function(options){//这里就是插件的实现代码了...};然后我们可以像这样调用它:Js代码$("divTest").hilight();接受一个options参数,以便控件插件的行为Js代码$.fn.hi
3、light=function(options){vardefaults={foreground:'red',background:'yellow'};//Extendsoutdefaultsoptionswiththoseprivided扩展我们默认的设置$.extend(defaults,options);};而我们可以这样使用它:Js代码$('#myDiv').hilight({foreground:'blue'});暴露插件的默认设置,以便外面可以访问作为插件的提升和优化,我们应该将上面的代码暴露出来作为插
4、件的默认设置。这非常重要,这样做让使用插件的用户可以非常容易地用最少的代码重写或自定义该插件。然而这个我们可以借助JavaScriptfunction对象的优势:Js代码$.fn.hilight=function(options){//Extendourdefaultoptionswiththoseprovided//Notethatthefirstargtoextendisanemptyobject//thisistokeepfromoverridingour"defaults"objectvaropts=$.
5、extend({},$.fn.hilight.defaults,options);}$.fn.hilight.defaults={foreground:'red',background:'yellow'};这里值得注意的是$.extend()第一个参数是一个空的对象,这样可以让我们重写插件的默认设置用户可以像这样使用插件:Js代码//overrideplugindefaultforegroundcolor$.fn.hilight.defaults.foreground='blue';//...//invokepl
6、uginusingnewdefaults$('.hilightDiv').hilight();//...//overridedefaultbypassingoptionstopluginmethod$('#green').hilight({foreground:'green'});适当地将子函数提供给外部访问调用这个例子延续前面的例子,你会发现有一个有趣的方法可以扩展你的插件(然后还可以让其他人扩展你的插件:))。例如,我们在插件里声明了一个函数叫“format”用来高这显示文本,我们的插件实现代码可能是这样子的
7、:Js代码$.fn.hight=function(options){//iterateandreformateachmachedelementreturnthis.each(function(){var$this=$(this);//...varmarkup=$this.html();//callourformatfunctionmarkup=$.fn.hilight.format(markup);$this.html(markup);});};//defineourformatfunction$.fn.hili
8、ght.format=function(txt){return''+txt+'';};保持私有函数暴露插件有部分内容提供重写看上去似乎非常强大,但是你必须认真地考虑你的插件哪一部分是需要暴露出来的。一旦暴露出来,你就需要考虑这些变化点,一般情况下,如果你没有把握哪部分需要暴露出来,那么你可以不这样做。那如何才能够定义更多的函数而不将其暴露
此文档下载收益归作者所有