推荐一款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的函数
Jan 31 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
Jan 12 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
简介JavaScript中的italics()方法的使用
Jun 08 Javascript
jQuery qrcode生成二维码的方法
Apr 03 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
Swiper自定义分页器使用详解
Dec 28 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
May 21 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
Apr 17 Javascript
原生JavaScript实现贪吃蛇游戏
Nov 04 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
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
xml和web特殊字符
2009/04/28 Javascript
javascript 常用方法总结
2009/06/03 Javascript
一些常用的JS功能函数代码
2009/06/23 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
JS字符串false转boolean的方法(推荐)
2017/03/08 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
树莓派实现移动拍照
2019/06/22 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
用python实现名片管理系统
2020/06/18 Python
python3中布局背景颜色代码分析
2020/12/01 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
教育科研先进个人材料
2014/01/26 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
教师自查自纠材料
2014/10/14 职场文书