转自:http://my.oschina.net/gougouqihao/blog/182318
easyui 插件开发
01 | ( function ($) { |
02 | /** |
03 | * 插件定义 |
04 | */ |
05 | $.fn.resquery = function (options, param) { |
06 | if ( typeof options == "string" ) { |
07 | return $.fn.resquery.methods[options]( this , param); |
08 | }; |
09 | |
10 | options = options || {}; |
11 |
12 | return this .each( function (){ |
13 | var id = $( this ).attr( "id" ); |
14 | var opts ; |
15 | var data = $.data( this , "resquery" ); |
16 | if (data) { |
17 | opts = $.extend(data.options, options); |
18 | } else { |
19 | opts = $.extend( {}, $.fn.resquery.defaults,$.fn.resquery.parseOptions( this ), options); |
20 | data = $.data( this , "resquery" , { |
21 | options : opts |
22 | }); |
23 | } |
24 | |
25 | //你的插件。。。 |
26 | //如果在这里动态的生成了 easyui 的控件,html 写到页面上后是不能渲染成 easyui 组件的,需要手动调用 |
27 | // $.parser.parse(你定义的html); // parse 必须渲染父节点,不能渲染节点本身 |
28 | |
29 | }); |
30 | }; |
31 |
32 | /** |
33 | * 默认值配置 |
34 | */ |
35 | $.fn.resquery.defaults = { //默认属性定义 |
36 | resQueryUrl : 'XXXXX' , |
37 | fit : true , |
38 | border : false , |
39 | layout : 'west' |
40 | }; |
41 |
42 | /** |
43 | * 对外暴露的方法 |
44 | */ |
45 | $.fn.resquery.methods = { |
46 | onResTreeQuery : function (jq,param){ |
47 | return jq.each( function (){ |
48 | addTabs( this ,param); |
49 | }); |
50 | |
51 | } |
52 | }; |
53 |
54 | /** |
55 | * class声明式定义属性data-options转化为options |
56 | * @param {Object} target DOM对象 |
57 | * @return {TypeName} |
58 | */ |
59 | $.fn.resquery.parseOptions = function (target) { |
60 | var t = $(target); |
61 | return $.extend({},$.parser.parseOptions(target,[ "resQueryUrl" ])); //解析 data-options 中的初始化参数 |
62 | }; |
63 |
64 | function addTabs(jq,param){ |
65 | //方法定义 |
66 | } |
67 |
68 | $.parser.plugins.push( 'resquery' ); //将自定义的插件加入 easyui 的插件组 |
69 |
70 | })(jQuery); |