jquery easyui 插件开发

( function ($) {
/**
  * 插件定义
  */
$.fn.resquery = function (options, param) {
//当options为字符串时,说明执行的是该插件的方法。
     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 {
//$.fn.combobox.parseOptions(this)作用是获取页面中的data-options中的配置
             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);

猜你喜欢

转载自tommy-lu.iteye.com/blog/2266104