jQuery 插件格式 规范
2024-08-25 16:15:02
方式一(自定义对象):
(function($, window, document) {
var Plugin, defaults, pluginName;
调用时的函数名:
pluginName = "slidesjs";
默认配置:
defaults= {
defaults= {
width: 940,
height: 528,
callback: {
loaded: function() {},
start: function() {},
complete: function() {}
}
};
height: 528,
callback: {
loaded: function() {},
start: function() {},
complete: function() {}
}
};
构建自定义对象:
Plugin = (function() {
function Plugin(element, options) {
this.element = element;
this.options = $.extend(true, {}, defaults, options); //拓展用户自定义参数
this._defaults = defaults;
this._name = pluginName;
this.init();
}
return Plugin;
})();
function Plugin(element, options) {
this.element = element;
this.options = $.extend(true, {}, defaults, options); //拓展用户自定义参数
this._defaults = defaults;
this._name = pluginName;
this.init();
}
return Plugin;
})();
拓展一系列方法:
Plugin.prototype.init = function() { ... }
Plugin.prototype.next = function() { ... }
...
拓展到jQuery的fn上:
return $.fn[pluginName] = function(options) {
//把选中的每个元素都进行实例化
return this.each(function() {
if (!$.data(this, "plugin_" + pluginName)) {
return $.data(this, "plugin_" + pluginName, new Plugin(this, options));
}
});
};
}
});
};
})(jQuery, window, document);
使用:
$(function() {
$('#slides').slidesjs({
width: 940,
height: 528
});
});
$('#slides').slidesjs({
width: 940,
height: 528
});
});
或者这样扩展进jQuery也可以:
$.fn.Swipe = function(params) {
return this.each(function() {
$(this).data('Swipe', new Swipe($(this)[0], params));
});
}
方式2(简单点的):
(function($) {
"use strict";
"use strict";
$.fn.boxRefresh = function(options) {
var _option= $.extend({
trigger: ".refresh-btn",
onLoadStart: function(box) {},
onLoadDone: function(box) {}
}, options);
return this.each(function() { ... });
};
})(jQuery);
另一种方式,使用extend:
(function(f) {
jQuery.fn.extend({slimScroll: function(h) {
...
}});
jQuery.fn.extend({slimscroll: jQuery.fn.slimScroll})
})(jQuery);
最新文章
- OpenSceneGraph 笔记--如何导出三角形数据
- 线程安全的无锁RingBuffer的实现
- 使用extjs6官方模板admin-dashboard
- UUID UDID
- CUDA程序设计(三)
- js中对radio和checkbox是否选中的判断
- (转)云存储:阿里云OSS 、又拍云和 七牛 的比较
- [转]C#中的?和??
- lintcode :Count 1 in Binary 二进制中有多少个1
- Jenkins User on Apt-Get Install Installation
- MySQL索引的创建,查看,删除
- GMap.Net
- bat自动创建文件夹(以当前时间命名)
- JS中 事件冒泡与事件捕获
- Web前端原生JavaScript浅谈轮播图
- 软件工程(FZU2015) 助教总结
- Javascript中的this指向。
- InputStream只能读取一次的解决办法 C# byte[] 和Stream转换
- C# 压缩文件 的创建
- golang优先队列