推荐一款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 相关文章推荐
jquery validate.js表单验证的基本用法入门
May 13 Javascript
js登录弹出层特效
Mar 07 Javascript
推荐25个超炫的jQuery网格插件
Nov 28 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
Mar 04 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
Jul 31 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
Nov 09 Javascript
纯JS代码实现一键分享功能
Apr 20 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
Jun 01 Javascript
js判断所有表单项不为空则提交表单的实现方法
Sep 09 Javascript
关于vue-router的beforeEach无限循环的问题解决
Sep 09 Javascript
浅谈webpack编译vue项目生成的代码探索
Dec 11 Javascript
JS实现多物体运动的方法详解
Jan 23 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/09/30 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
python实现在windows下操作word的方法
2015/04/28 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
django迁移数据库错误问题解决
2019/07/29 Python
使用python实现对元素的长截图功能
2019/11/14 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
几个Shell Script面试题
2012/08/31 面试题
微笑服务标语
2014/06/24 职场文书
关于保护环境的建议书
2014/08/26 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
离职信范文
2015/06/23 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
python入门之算法学习
2021/04/22 Python
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技