推荐一款jQuery插件模板


Posted in Javascript onJanuary 09, 2015

我使用jQuery已经有相当长的时间了,并且我会常常为它写一些插件(plugin)。我尝试过用不同的方式去写,现在这个模板是我最喜欢的:

;(function($) {

  // multiple plugins can go here

  (function(pluginName) {

    var defaults = {

      color: 'black',

      testFor: function(div) {

        return true;

      }

    };

    $.fn[pluginName] = function(options) {

      options = $.extend(true, {}, defaults, options);

             

      return this.each(function() {

        var elem = this,

          $elem = $(elem);

 

        // heres the guts of the plugin

          if (options.testFor(elem)) {

            $elem.css({

              borderWidth: 1,

              borderStyle: 'solid',

              borderColor: options.color

            });

          }

      });

    };

    $.fn[pluginName].defaults = defaults;  

  })('borderize');

})(jQuery);

 

//下面是用法

$('div').borderize();

$('div').borderize({color: 'red'});

以下是我喜欢这种模板的原因

1. 你仍然可以访问里面的默认选项,即便它被重写了(简单地通过父属性的访问)

2. 通过修改pluginName即可更改插件的名字。(这种方式对代码压缩也非常有利)

第#1点非常强大,比如说我们希望复写这个方法,但是仍然希望保留原来的方法,我们可以看下面的例子:

$('.borderize').borderize({

    testFor: function(elem) {

        var $elem = $(elem);

        if (elem.is('.inactive')) {

            return false;

        } else {

            // calling "parent" function

            return $.fn.borderize.defaults.testFor.apply(this, arguments);

        }

    }

});

We can even do this with regular properties like this

 

var someVarThatMayBeSet = false;

/* code ... */

 

$('.borderize').borderize({

    color: someVarThatMayBeSet ? 'red' : $.fn.borderize.defaults.color

});

小伙伴们,你们也会喜欢上这款jQuery插件模板的吧,他实在是太灵活了。

Javascript 相关文章推荐
JavaScript读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
JQuery开发的数独游戏代码
Oct 29 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
Feb 28 Javascript
jQuery实现可编辑的表格实例讲解(2)
Sep 17 Javascript
JS输出空格的简单实现方法
Sep 08 Javascript
js 事件的传播机制(实例讲解)
Jul 20 Javascript
基于Vue单文件组件详解
Sep 15 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
详解React服务端渲染从入门到精通
Mar 28 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
javascript的var与let,const之间的区别详解
Feb 18 Javascript
JavaScript中Cookie操作实例
Jan 09 #Javascript
使用javascript实现简单的选项卡切换
Jan 09 #Javascript
14个有用的Jquery技巧分享
Jan 08 #Javascript
jQuery中insertBefore()方法用法实例
Jan 08 #Javascript
jQuery中insertAfter()方法用法实例
Jan 08 #Javascript
jQuery中prependTo()方法用法实例
Jan 08 #Javascript
8个超实用的jQuery功能代码分享
Jan 08 #Javascript
You might like
php设计模式之观察者模式的应用详解
2013/05/21 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
5款Javascript颜色选择器
2009/10/25 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
vue多次循环操作示例
2019/02/08 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
python静态方法实例
2015/01/14 Python
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
python实现感知器算法(批处理)
2019/01/18 Python
详解python 爬取12306验证码
2019/05/10 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
python程序需要编译吗
2020/06/19 Python
Python logging模块handlers用法详解
2020/08/14 Python
计算机大学生的自我评价
2013/10/15 职场文书
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
化工专业应届生求职信
2013/11/08 职场文书
上班迟到检讨书
2014/01/10 职场文书
对孩子的寄语
2014/04/09 职场文书
市场部经理岗位职责
2014/04/10 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle