(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/182318html