怎么编写jquery插件

  介绍

这篇文章给大家分享的是有关怎么编写jquery插件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>类型

jquery的插件主要分3种为类型

<强> 1,封装对象方法

这种插件是将对象方法封装起来,用于对通过选择器获取的jquery对象进行操作,是最常见的一种插件。此类插件可以发挥出jquery选择器的强大优势,有相当一部分的jquery的方法,都是在jquery脚本库内部通过这种形式“插”在内核上的,例如:父()方法,appendTo()方法等。这些方法在现在来看都是jquery本身自带的方法了。平时,我们是可以直接拿来就用的,只需引入jquery库就行

<强> 2,封装全局函数

可以将独立的函数加到jquery命名空间下,如常用的jQuery.ajax(),去首尾空格的jQuery.trim()方法等,都是jquery内部作为全局函数的插件附加到内核上去的

<强> 3,选择器插件

虽然jquery的选择器十分强大,但是在少数情况下,还是会需要用到选择器插件来扩充一些自己喜欢的选择器

<强>要点

1, jquery插件的文件名推荐命名为jquery。[插件名). JS,以免和其他JS库插件混淆

2,所有的对象方法都应当附加到jQuery.fn对象上,而所有的全局函数都应当附加到jquery对象本身上

3,在插件内部的这一指向的是当前通过选择器获取的jquery对象,而不像一般方法那样,如点击,内部的这一指向的是DOM元素

4,可以通过这个。每个来遍历所有的元素

5,所有的方法或函数插件,都应当以分号结尾。否则压缩的时候可能出现问题。为了稳妥些,甚至可以在插件头部先加上一个分号,以免他人不规范的代码影响自身的插件代码

6,插件应该返回一个jQuery对象,以保证插件的可链式操作

7,避免在插件内部使用美元作为jQuery对象的别名,而应使用完整的jQuery来表示,避免冲突。当然,也可以利用闭包来回避这种问题,使插件内部继续使用美元作为jQuery的别名

<强>闭包

利用闭包的特性,即可以避免内部临时变量影响全局空间,又可以在插件内容继续使用美元作为jQuery的别名。常见jQuery的插件都是以下这种形式的:

(函数(){/*这才能里放置代码*/,   })();

首先定义一个匿名函数函数(){/*这里放置代码*/},然后用括号括起来,变成(函数(){/*这里放置代码*/})这种形式,最后通过()这个运算符来执行。可以传递参数进行,以供内部函数使用

//为了更好的兼容性,开始前有个分号   ($);(函数{,,,//此处将美元作为匿名函数的形参/*这才能里放置代码,可以使用美元作为jQuery的缩写别名*/})(jQuery);,,,,,,//这里就将jQuery作为实参传递给匿名函数了

上面的代码是一种常见jQuery的插件的结构

<>强插件机制

jQuery提供了两个用于拓展jQuery功能的方法,即jQuery.fn.extend()方法和jQuery.extend()方法.jQuery.fn.extend()方法用于拓展封装对象方法的插件,jQuery.extend()方法用于拓展封装全局函数的插件和选择器插件。这两个方法都接受一个参数,类型为Object.Object对象的“名/值对“分别代表“函数或方法名/函数主体“

【jQuery.fn.extend ()】

jQuery.fn.extend()方法用于将一个对象的内容合并到jQuery的原型,以提供新的jQuery实例方法

& lt; label> & lt; input 类型=癱heckbox", name=癴oo"祝辞,Foo   & lt; label> & lt; input 类型=癱heckbox", name=癰ar"祝辞,Bar   & lt; button  id=癰tn1"祝辞全选& lt;/button>   & lt; button  id=癰tn2"祝辞全不选& lt;/button>   & lt; script>   jQuery.fn.extend ({   ,检查:函数(),{   return 才能;this.each(函数(),{,this.checked =,真的,,});   },   ,取消:函数(),{   return 才能;this.each(函数(),{,this.checked =,假,,});   ,}   });   $ (& # 39;# btn1& # 39;) .click(函数(){   ,美元(,“输入(type=& # 39;复选框# 39;]“,)支票();   });   $(& # 39;#这里# 39;).click(函数(){   ,美元(,“输入(type=& # 39;复选框# 39;]“,).uncheck ();   });   & lt;/script>

【jQuery.extend ()】

jQuery.extend()方法用一个或多个其他对象来扩展一个对象,然后返回被扩展的对象

<代码> jQuery。扩展(目标[中的object1] [, objectN])

例如,合并设置对象和选项对象,修改并返回设置对象

var  settings =,{验证:假的,限制:5,名字:“foo"};   var  options =,{验证:真的,名称:“bar"};   var  newOptions =, jQuery.extend(设置,选项);   console.log (newOptions);//Object {验证:真的,,限制:,,,名字:,“bar"}   jQuery.extend()方法经常被用于设置插件方法的一系列默认参数   function  foo(选项){   选择=jQuery.extend({才能   ,,,的名字:“bar",   ,,,长度:5   ,,,数据类型:“xml"   },才能选择);   }

怎么编写jquery插件