Jquery插件开发

文/饥人谷_韩宝亿(简书作者)
原文链接:http://www.jianshu.com/p/e773db0d1c98
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

一、什么Jquery插件,为什么要学会写Jquery插件?


Paste_Image.png

(一)什么是插件?

所谓“插件”,就是用户自己新增的jQuery实例对象的方法。由于该方法要被所有实例共享,所以只能定义在jQuery构造函数的原型对象(prototype)之上。对于用户来说,把一些常用的操作封装成插件(plugin),使用起来会非常方便。简单的说插件即:扩展Jquery方法。

(二)为什么要学会写Jquery插件?

1、有很多自己想要的功能或者方法Jquery本身并没有提供,但是我们可以通过自己写一个插件来实现;
2、为了方便我们可以通过在网上搜到的插件来实现一些功能,但是如果那些插件不能完全满足你的需求的话我们就束手无策了!如果我们学会怎么写插件的话,我们可以通过稍微修改别人写的插件源代码就可以实现我们的需求。

二、插件的编写

(一)原理

本质上,jQuery插件是定义在jQuery构造函数的prototype对象上面的一个方法,这样做就能使得所有jQuery对象的实例都能共享这个方法。因为jQuery构造函数的prototype对象被简写成jQuery.fn对象,所以插件采用下面的方法定义。


Paste_Image.png


更好的做法是采用下面的写法,这样就能在函数体内自由使用美元符号($)。
(function ($){ $.fn.myPlugin = function (){ // Do your awesome plugin stuff here };})(jQuery);
需要注意的是,在插件内部,this关键字指的是jQuery对象的实例。而在一般的jQuery回调函数之中,this关键字指的是DOM对象。


Paste_Image.png

三、实例


Paste_Image.png


1、不同的function,this不同,要想知道this指什么,最直接的方法就是把它console.log(this);
2、判断一个this是不是Jquery实例可以: this instanceof Jquery; 如果返回true,说明它是Jquery实例;
3、这个例子的第二个this是个dom节点,要给dom节点添加Jquery方法就要把它转换成Jquery对象:$(this).hide('slow').

posted @ 2016-03-17 16:48  菜鸟-小宝  阅读(295)  评论(0编辑  收藏  举报