本篇文章部分摘自阮一峰的Javascript标准教程--http://javascript.ruanyifeng.com/jquery/plugin.html
一、什么Jquery插件,为什么要学会写Jquery插件?
(一)什么是插件?
所谓“插件”,就是用户自己新增的jQuery实例对象的方法。由于该方法要被所有实例共享,所以只能定义在jQuery构造函数的原型对象(prototype)之上。对于用户来说,把一些常用的操作封装成插件(plugin),使用起来会非常方便。简单的说插件即:扩展Jquery方法。
(二)为什么要学会写Jquery插件?
1、有很多自己想要的功能或者方法Jquery本身并没有提供,但是我们可以通过自己写一个插件来实现;
2、为了方便我们可以通过在网上搜到的插件来实现一些功能,但是如果那些插件不能完全满足你的需求的话我们就束手无策了!如果我们学会怎么写插件的话,我们可以通过稍微修改别人写的插件源代码就可以实现我们的需求。
二、插件的编写
(一)原理
本质上,jQuery插件是定义在jQuery构造函数的prototype对象上面的一个方法,这样做就能使得所有jQuery对象的实例都能共享这个方法。因为jQuery构造函数的prototype对象被简写成jQuery.fn对象,所以插件采用下面的方法定义。
更好的做法是采用下面的写法,这样就能在函数体内自由使用美元符号($)。
(function ($){ $.fn.myPlugin = function (){ // Do your awesome plugin stuff here };})(jQuery);
需要注意的是,在插件内部,this关键字指的是jQuery对象的实例。而在一般的jQuery回调函数之中,this关键字指的是DOM对象。
三、实例
1、不同的function,this不同,要想知道this指什么,最直接的方法就是把它console.log(this);
2、判断一个this是不是Jquery实例可以: this instanceof Jquery; 如果返回true,说明它是Jquery实例;
3、这个例子的第二个this是个dom节点,要给dom节点添加Jquery方法就要把它转换成Jquery对象:$(this).hide('slow').