如何使用jQuery封装插件

代码溯雪人
• 阅读 2949
jQuery官方给了一套对象级别开发插件的模板 。

如果使用的是 sublimeText 编辑器,推荐安装插件 jQuery,在文件中输入 plugin + Enter 会自动生成代码片段。

安装成功后在 js 文件中输入 plugin ,会出现下图所示内容:

如何使用jQuery封装插件

选择 plugin (method basic),出现以下内容:

(function($) {
// What does the pluginName plugin do?
$.fn.pluginName = function(options) {

  if (!this.length) { return this; }

  var opts = $.extend(true, {}, $.fn.pluginName.defaults, options);

  this.each(function() {
    var $this = $(this);

  });

  return this;
};

// default options
$.fn.pluginName.defaults = {
  defaultOne: true,
  defaultTwo: false,
  defaultThree: 'yay!'
};

})(jQuery);

如何使用jQuery封装插件

给插件起个名字,添加到红框内 ,在绿框内设置所需的参数,在蓝框内编写插件的主方法。

在 HTML 中调用该插件:

如何使用jQuery封装插件

引入 jQuery 和插件 js 文件,选择 DOM 元素,调用插件。

可以参考下面这个封装插件的实例:
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>jQplugin</title>
</head>

<body>
    <div class="box">
        <input type="button" class="btn1" value="btn1">
        <input type="button" class="btn2" value="btn2">
    </div>
</body>

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
// 插件封装
(function($) {
    // What does the pluginName plugin do?
    $.fn.pluginName = function(options) {

        if (!this.length) {
            return this;
        }

        var opts = $.extend(true, {}, $.fn.pluginName.defaults, options);

        this.each(function() {
            var $this = $(this);
            $(opts.btn1).click(function(event) {
                alert($(this).val());
            });
            $(opts.btn2).click(function(event) {
                alert($(this).val());
            });

        });

        return this;
    };

    // default options
    $.fn.pluginName.defaults = {
        btn1: null,
        btn2: null
    };

})(jQuery);

// 调用插件
$(function() {
    $(".box").pluginName({
        btn1: ".btn1",
        btn2: ".btn2"
    })
});
</script>

</html>

如何使用jQuery封装插件

期待您的关注!

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
javashop 发布开源放大镜HiZoom插件
HiZoomHiZoom:一个简单,易用,轻量(3KB)的jQuery放大镜插件。特性简单:文档详细清楚,直接上手轻量:压缩后的文件仅仅3KB,是MagicZoom插件的 1/24兼容性强:Chrome,Firefox,Safari,IE9依赖
Stella981 Stella981
3年前
Js和Thymeleaf如何获取model中的值
简述在大多数的项目架构中,使用SPringBoot发布微服务,前端采用Thymeleaf作为Html模版,使用Jquery作为动态脚本,那么Thymeleaf和Jquery是如何获取Model中的数据呢?Jquery获取Model中的数据方法1:将model中的值赋给hidden,然后Js获取隐藏域的值。
Stella981 Stella981
3年前
JTopo + Vue 实现自定义拖拽流程图
JTopoVue实现自定义拖拽流程图市场上做流程图的插件比较多,这里介绍一种基于canvas编写的js插件,结合vue框架做出精美的流程图首先搭建vue框架,这里就不做介绍,由于jtopo官方demo里用到了jquery,所以我的项目里也引用了jquery插件,鉴于这里用到了很多的dom操作,所
Wesley13 Wesley13
3年前
241个jquery插件—jquery插件大全
jQuery由美国人JohnResig创建,至今已吸引了来自世界各地的众多javascript高手加入其team.jQuery是继prototype之后又一个优秀的Javascrīpt框架。其经典的Slogan是“WriteLess,Domore”(写更少的代码,做更多的事情)。jQuery是轻量级的js库(压缩后只有21k),这
Wesley13 Wesley13
3年前
JS实现在线生成带logo的二维码
      jquery.qrcode.js是一个能够在客户端生成矩阵二维码QRCode的jquery插件,使用它可以很方便的在页面上生成二维条码。此插件是能够独立使用的,体积也比较小,使用gzip压缩后才不到4kb。因为它是直接在客户端生成的条码,所以不会有图片下载的过程,能够实现快速生成。它是基于一个多语言的类库封装的,也不依赖于其他额外的服务。
Easter79 Easter79
3年前
Sublime添加Sass插件,语法高亮
在sublime中安装sass插件和sassbuild插件了,打开我们的sublime首先你要看的是在preference选项下有没有packagecontrol这个选项,如果没有的话,就表示你没有PackageControl插件(一个方便 Sublimetext管理插件的插件),这时,你就要从菜单ViewShowConsole或
Stella981 Stella981
3年前
Jquery从入门到放弃(八)
杂项:一、noConflict()为防止简写符号‘$’和其他JS库发生冲突,执行此语句后,jquery会释放出"$"符号,自己使用jquery全称$.noConflict();jQuery(document).ready(function(){jQuery("button
Stella981 Stella981
3年前
JQuery BlockUI遮罩层
官方地址:http://jquery.malsup.com/block/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fjquery.malsup.com%2Fblock%2F) 需要使用的js引入jquery包引入插件包JQueryBlockUI(官方下载相应的js)
Wesley13 Wesley13
3年前
vim提示小技巧
vim使用小技巧ctags插件加入了ctags后,在项目的根目录执行ctagsR会自动在此目录下生成tags文件在源文件中,Ctrl即可跳转到某函数的定义,Ctrlo可以返回刚才的起始点。多窗口操作使用:sp文件名可以水平分割窗口使用:vs
可莉 可莉
3年前
20+ 个很棒的 jQuery 文件上传插件或教程
文件上传是网站很常见的功能之一,通过使用jQuery可以让上传过程更加人性化,更好的用户体验。本文介绍20个jQuery的文件上传插件,其中有一些是教程。1\.Plupload(http://www.oschina.net/p/plupload"Plupload")Plupload是一个Web浏览器上的界面友好的文件上传模块,可
Stella981 Stella981
3年前
JQuery树插件JSTree的使用
JSTREE简介:JSTREE是一款基于JQUERY的树形插件,其功能相当强大,尤其是其右键菜单,很轻松地就能实现节点的增加节点、重命名节电、删除节点、复制节点、剪切节点等操作。使用JSTREE:1.首先,要去JSTREE下载插件包:http://www.jstree.com/(https://www.oschina.net