常用的jquery模板插件——jQuery Boilerplate介绍 - Web前端
作者:98wpeu发布时间:2026-08-08分类:网页前端技术浏览:4
在初次进行jQuery插件开发时,我们往往无从下手,当然我们可以按照JQuery官方提供的格式进行简单的插件开发,但是很多时候往往不尽完美,一不小心,就造出一个很“烂”的插件:难以维护、难以扩展、使用繁琐、性能不佳...当我们在不断的实践中,慢慢积累下来时,有些问题得到了有效的避免,但也带来了新的问题:在众多纷杂的jQuery插件开发模式中,究竟哪一种模式才是最好的呢?
如果能提供一个模板,通过一定的约束和规范为开发者解决在jquery插件开发中的“迷惘”那该多好!在这里主要介绍下一个在实际开发中最常用的jquery模板插件——JQuery Boilerplate
jQuery Boilerplate不是jquery插件开发的银弹,他并没有提供各种模式的完美解决方案,当然这也不是他所追求的目标,他的目的只是提供一个最基础的模板,对于初学者而言,你只需要在这个模板的基础上做相应的修改即可。来看一下jQuery Boilerplate提供的一个基础模板(是不是觉得很熟悉呢?没错,Bootstrap就是这个模式):
// 这个分号的作用是防止和其他jquery插件合并时,别人不规范的jquery插件忘记使用分号结束
//影响到我们当前的插件,导致无法运行的问题。
;(function ( $, window, document, undefined ) {
// undefined作为形参的目的是因为在es3中undefined是可以被修改的
//比如我们可以声明var undefined = 123,这样就影响到了undefined值的判断,幸运的是在es5中,undefined不能被修改了。
// window和document本身是全局变量,在这个地方作为形参的目的是因为JS执行是从里到外查找变量的(作用域),把它们作为局部变量传进来,就避免了去外层查找,提高了效率。
// 声明默认属性对象
var pluginName = "defaultPluginName",
defaults = {
propertyName: "value"
};
// 构造函数
function Plugin ( element, options ) {
this.element = element;
// 将默认属性对象和传递的参数对象合并到第一个空对象中
this.settings = $.extend( {}, defaults, options );
this._defaults = defaults;
this._name = pluginName;
this.init();
}
// 为了避免和原型对象Plugin.prototype的冲突,这地方采用继承原型对象的方法
$.extend(Plugin.PRototype, {
init: function () {
// 初始化,由于继承自Plugin原型,
// 你可以在这里直接使用this.element或者this.settings
console.log("xD");
},
yourOtherFunction: function () {
// some logic
}
});
// 对构造函数的一个轻量级封装,
// 防止产生多个实例
$.fn[ pluginName ] = function ( options ) {
this.each(function() {
if ( !$.data( this, "plugin_" + pluginName ) ) {
$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
}
});
// 方便链式调用
return this;
};
})( jQuery, window, document );
上面的模板是一个轻量级的基础模板,在开发中已经能满足我们大部分需求,例如:对象只实例化一次,链式调用、默认参数、以及公有和私有方法的调用。来看一个示例:
http://jsfiddle.net/mirandaasm/wjPvF/3/
但是在实际开发中,尤其在有一定规模的组件开发中,我们还面临着很多问题需要解决,比如命名空间的冲突、插件的可扩展性以及公有方法如何方便的调用?当然还有一部分是个人爱好的原因,我就喜欢使用其他模式的开发方式。这里jQuery Boilerplate也提供了几种不同模式的组件开发方式,你可以选择一个适合你的使用:
轻量级(基础)模式 为初学者提供的一个简单通用的基础模板,包括基础的默认对象、简单的构造函数、默认参数和传递参数的合并以及防止对象多次实例化的构造函数的简单封装。
Widget factory 工厂模式,没错,jquery UI使用的典型模式,使用面向对象的方式构建复杂有状态的组件,jquery ui中的组件大部分依赖于widget factory基础组件,这个基础模板提供了大部分的默认方法,包括事件触发方法。
Widget factory + Requirejs 这是个使用RequireJS对Widget factory进行简单封装,使其支持AMD模块化加载规范。
Namespaced pattern 命名空间模式,在和其他插件一起使用时,采用命名空间模式避免和其他插件的冲突问题。
- 上一篇:jQuery自带的一些常用方法总结 - Web前端
- 下一篇:已经是最后一篇了
相关推荐
- jQuery自带的一些常用方法总结 - Web前端
- jQuery级联操作绑定事件实例 - Web前端
- jquery向上向下取整适合分页查询 - Web前端
- jquery.idTabs 选项卡使用示例代码 - Web前端
- jQuery根据ID获取input、checkbox、radio、select的示例 - Web前端
- 简单的jquery左侧导航栏和页面选中效果 - Web前端
- JQuery EasyUI 加载两次url的原因分析及解决方案 - Web前端
- 用jquery修复在iframe下的页面锚点失效问题 - Web前端
- jquery bind(click)传参让列表中每行绑定一个事件 - Web前端
- jQuery打印指定区域Html页面并自动分页 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


