(function($) { /** * 插件定义 */ $.fn.resquery = function(options, param) { if (typeof options == "string") { return $.fn.resquery.methods[options](this, param); }; options = options || {}; return this.each(function(){ var id = $(this).attr("id"); var opts ; var data = $.data(this, "resquery"); if (data) { opts = $.extend(data.options, options); } else { opts = $.extend( {}, $.fn.resquery.defaults,$.fn.resquery.parseOptions(this), options); data = $.data(this, "resquery", { options : opts }); } //你的插件。。。 //如果在这里动态的生成了 easyui 的控件,html 写到页面上后是不能渲染成 easyui 组件的,需要手动调用 // $.parser.parse(你定义的html); // parse 必须渲染父节点,不能渲染节点本身 }); }; /** * 默认值配置 */ $.fn.resquery.defaults = {//默认属性定义 resQueryUrl : 'XXXXX', fit : true, border : false, layout : 'west' }; /** * 对外暴露的方法 */ $.fn.resquery.methods = { onResTreeQuery : function(jq,param){ return jq.each(function(){ addTabs(this,param); }); } }; /** * class声明式定义属性data-options转化为options * @param {Object} target DOM对象 * @return {TypeName} */ $.fn.resquery.parseOptions = function(target) { var t = $(target); return $.extend({},$.parser.parseOptions(target,["resQueryUrl"]));//解析 data-options 中的初始化参数 }; function addTabs(jq,param){ //方法定义 } $.parser.plugins.push('resquery');//将自定义的插件加入 easyui 的插件组 })(jQuery);
转自:http://my.oschina.net/gougouqihao/blog/182318