自fullCalendar插件抽取,比较经典,收藏备用。
(function($, undefined) {
var defaults = {};
$.fn.zDropMenu = function(options) {
// method calling
if( typeof options == 'string') {
var args = Array.prototype.slice.call(arguments, 1);
var res;
this.each(function() {
var dropmenu = $.data(this, 'zDropMenu');
if(dropmenu && $.isFunction(dropmenu[options])) {
var r = dropmenu[options].apply(dropmenu, args);
if(res === undefined) {
res = r;
}
if(options == 'destroy') {
$.removeData(this, 'zDropMenu');
}
}
});
if(res !== undefined) {
return res;
}
return this;
}
options = $.extend({}, defaults, options);
this.each(function(i, _element) {
var element = $(_element);
var dropmenu = new zDropMenu(element, options);
element.data('zDropMenu', dropmenu);
// TODO: look into memory leak implications
dropmenu.init();
});
return this;
};
//classes/prototyping
function zDropMenu() {
}
})(jQuery);