美文网首页
从零开始的jQuery插件封装

从零开始的jQuery插件封装

作者: 洛桃桃 | 来源:发表于2018-10-02 18:09 被阅读0次

jQuery插件简易封装方法。

jQuery插件机制

  • jQuery.extend( [deep ], target, object1 [, objectN ] )

    Description: Merge the contents of two or more objects together into the first object.

    描述:将两个或更多对象的合并到第一个对象中。
    详情:jQuery-API-$.extend

  • jQuery.fn.extend()

    Description: Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods.

    描述:将对象内容合并到jQuery原型中以提供新的方法。
    详情:jQuery-API-$.fn.extend

插件结构

利用上述两个API我们可以方便地扩展jquery的方法。

(function ($) {
    $.fn.extend({
        "pluginName": function (options) {
            var opts = $.extend({}, defaluts, options); //合并默认参数与自定义参数
            return this.each(function () {
                var $this = $(this); //当前被jQuery包装的dom对象
                //操作dom ...
                //...
            });
        }
    });
    //默认参数
    var defaluts = {
        //...
    };
})(jQuery);

//调用
$('div').pluginName({});

完整示例

  • 代码

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <!-- 引入jQuery -->
        <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
        <title>从零开始的jQuery插件封装</title>
        <style>
            p {
                line-height: 1.5;
                text-align: center;
            }
        </style>
    </head>
    
    <body>
        <p class="defalut">DEFALUT</p>
        <p class="custom">CUSTOM</p>
    </body>
    <!-- 扩展jQuery插件:colored -->
    <script>
        (function ($) {
            $.fn.extend({
                "colored": function (options) {
                    var opts = $.extend({}, defaluts, options);
                    return this.each(function () {
                        var $this = $(this);
                        $this.css({
                            backgroundColor: opts.background,
                            color: opts.foreground
                        });
                    });
                }
            });
            var defaluts = {
                foreground: 'red',
                background: 'yellow'
            };
        })(jQuery);
    </script>
    
    <!-- 调用colored插件 -->
    <script>
        $('.defalut').colored();
        $('.custom').colored({
            foreground: 'white',
            background: 'black'
        });
    </script>
    
    </html>
    
    
  • 效果


    插件调用效果

参考

相关文章

  • jQuery插件

    1.jQuery插件分类 封装对象方法的插件 应用最广 封装全局函数的插件 作为jQuery全局函数插件 选择器插...

  • 从零开始的jQuery插件封装

    jQuery插件简易封装方法。 jQuery插件机制 jQuery.extend( [deep ], target...

  • jQuery插件封装

    jQuery插件封装 自定义插件:...

  • jQuery面试题(一)

    一、手写一个jQuery插件。 例1:封装jQuery对象方法的一个插件(使用jQuery.fn.extend()...

  • JQ 插件

    jquey的插件主要分为3中类型1.封装对象方法的插件2.封装全局函数的插件3.选择器插件 jquery插件的文件...

  • jQuery插件封装

    作用: 方法一: 方法二: 方法三:

  • jQuery封装插件

    jQuery封装有两种方法:$.extend()是在$本身上添加的方法 $.fn.extend() 是在$()上添...

  • 05_jQuery_无缝滚动轮播效果插件封装

    使用 jQuery 封装一个无缝滚动轮播效果插件。 效果图: 在线预览:jQuery_LKMarqueeSlide...

  • 简单构建一个 jQuery 插件---extend

    当我们写了一段有价值的 jQuery 代码的时候,是很希望能够封装成一个 jQuery 插件的。 可是该怎么封装呢...

  • 学会自己封装JQuery插件

    今天简单说说JQuery插件的封装。 首先上一份简单的模板 插件封装中,需要注意的是this的使用。不多说。通过上...

网友评论

      本文标题:从零开始的jQuery插件封装

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