Jquery插件开发

作者: 韩宝亿 | 来源:发表于2016-01-04 17:29 被阅读580次

    本篇文章部分摘自阮一峰的Javascript标准教程--http://javascript.ruanyifeng.com/jquery/plugin.html

    一、什么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').

    相关文章

      网友评论

        本文标题:Jquery插件开发

        本文链接:https://www.haomeiwen.com/subject/mmkahttx.html