jquery插件代码怎么写

1.请问如何写JQuery插件一、类级别($.extend)
类级别你可以理解为拓展jquery类,最明显的例子是$.ajax( 。),相当于静态方法 。
开发扩展其方法时使用$.extend方法,即jQuery.extend(object);
二、对象级别
对象级别则可以理解为基于对象的拓展,如$("#table").changeColor( 。); 这里这个changeColor呢,就是基于对象的拓展了 。
开发扩展其方法时使用$.fn.extend方法,即jQuery.fn.extend(object);
三、jQuery插件开发过程
1、定义作用域:为插件定义私有作用域,外部代码不能直接访问插件内部的代码,插件内部的代码不污染全局变量、
2、为jQuery扩展一个插件:为jQuery的实例添加一个宽展方法 。该宽展方法可以接收一些参数 。
3、设置默认值:为扩展方法设置默认值,一般会将默认属性对象定义为defaults 。使用$.extend(defaults,options)将默认值和传入的参数进行合并 。
4、支持jQuery的连接调用:循环把每个元素返回 。
5、插件里的方法:为了使代码结构化可视化,需要用到function 。在插件里的方法不能被外界调用 。
6、自定义回调函数:使用call和apply方法执行回调函数 。
2.如何编写jquery插件编写插件的目的是给已经有的一系列方法或函数做一个封装,以便在其他地方重复使用,提高开发效率和方便后期维护 。
本文将详细介绍如何编写jQuery插件类型jQuery的插件主要分为3种类型1、封装对象方法这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进行操作,是最常见的一种插件 。此类插件可以发挥出jQuery选择器的强大优势,有相当一部分的jQuery的方法,都是在jQuery脚本库内部通过这种形式“插”在内核上的,例如:parent()方法、appendTo()方法等 。
这些方法在现在来看都是jQuery本身自带的方法了 。平时,我们是可以直接拿来就用的,只需引入jQuery库就行2、封装全局函数可以将独立的函数加到jQuery命名空间下,如常用的jQuery.ajax()、去首尾空格的jQuery.trim()方法等,都是jQuery内部作为全局函数的插件附加到内核上去的3、选择器插件虽然jQuery的选择器十分强大,但是在少数情况下,还是会需要用到选择器插件来扩充一些自己喜欢的选择器要点1、jQuery插件的文件名推荐命名为jQuery.[插件名].js,以免和其他JS库插件混淆2、所有的对象方法都应当附加到jQuery.fn对象上,而所有的全局函数都应当附加到jQuery对象本身上3、在插件内部的this指向的是当前通过选择器获取的jQuery对象,而不像一般方法那样,如click,内部的this指向的是DOM元素4、可以通过this.each来遍历所有的元素5、所有的方法或函数插件,都应当以分号结尾 。
否则压缩的时候可能出现问题 。为了稳妥些,甚至可以在插件头部先加上一个分号,以免他人不规范的代码影响自身的插件代码6、插件应该返回一个jQuery对象,以保证插件的可链式操作7、避免在插件内部使用$作为jQuery对象的别名,而应使用完整的jQuery来表示,避免冲突 。
当然,也可以利用闭包来回避这种问题,使插件内部继续使用$作为jQuery的别名闭包利用闭包的特性,即可以避免内部临时变量影响全局空间,又可以在插件内容继续使用$作为jQuery的别名 。常见的jQuery插件都是以下这种形式的:(function(){/*这里放置代码*/})();首先定义一个匿名函数function(){/*这里放置代码*/},然后用括号括起来,变成(function(){/*这里放置代码*/})这种形式,最后通过()这个运算符来执行 。
可以传递参数进行,以供内部函数使用//为了更好的兼容性,开始前有个分号;(function($){ //此处将$作为匿名函数的形参/*这里放置代码,可以使用$作为jQuery的缩写别名*/})(jQuery); //这里就将jQuery作为实参传递给匿名函数了上面的代码是一种常见的jQuery插件的结构插件机制jQuery提供了两个用于拓展jQuery功能的方法,即jQuery.fn.extend()方法和jQuery.extend()方法 。jQuery.fn.extend()方法用于拓展封装对象方法的插件,jQuery.extend()方法用于拓展封装全局函数的插件和选择器插件 。