插件开发

作者: 01562c97bf42 | 来源:发表于2018-03-22 19:45 被阅读0次

    http://www.jianshu.com/p/518d424d4994

    我们先看个例子:$("a").css("color","red")。我们知道每个jQuery对象都会包含jQuery中定义的DOM操作方法,这里使用$方法来选择a元素,返回一个a元素的jQuery对象,这个对象就可以使用jQuery中定义的DOM操作方法。那么jQuery对象是如何获取这些方法的呢?其实jQuery内部定义了一个jQuery.fn对象,查看jQuery源码可以发现jQuery.fn=jQuery.prototype,也就是说jQuery.fn对象是jQuery的原型对象,jQuery的DOM操作方法都在jQuery.fn对象上定义的,然后jQuery对象就可以通过原型继承这些方法。

    基础版jQuery插件

    知道了上面这些知识,我们就可以来写一个简单的jQuery插件。假如我现在需要一个jQuery插件用来改变标签内容颜色,就可以按下面的方式来实现这个插件:

    $.fn.changeStyle =function(colorStr){this.css("color",colorStr);}


    满足链式调用的jQuery插件

    满足链式调用的jQuery插件

    链式调用时jQuery的一大特色,一个通用的插件应该遵循jQuery风格,满足链式调用要求。实现链式调用的方式也很简单:

    $.fn.changeStyle =function(colorStr){this.css("color",colorStr);returnthis;}

    然后使用的时候就可以链式调用其他方法了:

    $("p").changeStyle("red").addClass("red-color");


    保护好默认参数

    注意到上面代码调用extend时会将defaults的值改变,这样不好,因为它作为插件因有的一些东西应该维持原样,另外就是如果你在后续代码中还要使用这些默认值的话,当你再次访问它时它已经被用户传进来的参数更改了。

    var settings = $.extend({},defaults, options);//将一个空对象做为第一个参数

    -------------------------------------------------------------------------------------------------

    .$.fn2.全局变量-闭包?构造函数 参照开源代码

    2种调用

    div上 

    $('#table').bootstrapTable({})

    构造函数 new

    amd

    cmd

    mit

    相关文章

      网友评论

        本文标题:插件开发

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