jquery.sidemenu.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /**
  2. * EasyUI for jQuery 1.5.5.6
  3. *
  4. * Copyright (c) 2009-2018 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. var _1=1;
  12. function _2(_3){
  13. $(_3).addClass("sidemenu");
  14. };
  15. function _4(_5,_6){
  16. var _7=$(_5).sidemenu("options");
  17. if(_6){
  18. $.extend(_7,{width:_6.width,height:_6.height});
  19. }
  20. $(_5)._size(_7);
  21. $(_5).find(".accordion").accordion("resize");
  22. };
  23. function _8(_9,_a,_b){
  24. var _c=$(_9).sidemenu("options");
  25. var tt=$("<ul class=\"sidemenu-tree\"></ul>").appendTo(_a);
  26. tt.tree({data:_b,animate:_c.animate,onBeforeSelect:function(_d){
  27. if(_d.children){
  28. return false;
  29. }
  30. },onSelect:function(_e){
  31. _12(_9,_e.id);
  32. },onExpand:function(_f){
  33. _22(_9,_f);
  34. },onCollapse:function(_10){
  35. _22(_9,_10);
  36. },onClick:function(_11){
  37. if(_11.children){
  38. if(_11.state=="open"){
  39. $(_11.target).addClass("tree-node-nonleaf-collapsed");
  40. }else{
  41. $(_11.target).removeClass("tree-node-nonleaf-collapsed");
  42. }
  43. $(this).tree("toggle",_11.target);
  44. }
  45. }});
  46. tt.unbind(".sidemenu").bind("mouseleave.sidemenu",function(){
  47. $(_a).trigger("mouseleave");
  48. });
  49. _12(_9,_c.selectedItemId);
  50. };
  51. function _13(_14,_15,_16){
  52. var _17=$(_14).sidemenu("options");
  53. $(_15).tooltip({content:$("<div></div>"),position:_17.floatMenuPosition,valign:"top",data:_16,onUpdate:function(_18){
  54. var _19=$(this).tooltip("options");
  55. var _1a=_19.data;
  56. _18.accordion({width:_17.floatMenuWidth,multiple:false}).accordion("add",{title:_1a.text,collapsed:false,collapsible:false});
  57. _8(_14,_18.accordion("panels")[0],_1a.children);
  58. },onShow:function(){
  59. var t=$(this);
  60. var tip=t.tooltip("tip").addClass("sidemenu-tooltip");
  61. tip.children(".tooltip-content").addClass("sidemenu");
  62. tip.find(".accordion").accordion("resize");
  63. tip.unbind().bind("mouseenter",function(){
  64. t.tooltip("show");
  65. }).bind("mouseleave",function(){
  66. t.tooltip("hide");
  67. });
  68. },onPosition:function(){
  69. if(!_17.collapsed){
  70. $(this).tooltip("tip").css({left:-999999});
  71. }
  72. }});
  73. };
  74. function _1b(_1c,_1d){
  75. $(_1c).find(".sidemenu-tree").each(function(){
  76. _1d($(this));
  77. });
  78. $(_1c).find(".tooltip-f").each(function(){
  79. var tip=$(this).tooltip("tip");
  80. if(tip){
  81. tip.find(".sidemenu-tree").each(function(){
  82. _1d($(this));
  83. });
  84. }
  85. });
  86. };
  87. function _12(_1e,_1f){
  88. var _20=$(_1e).sidemenu("options");
  89. _1b(_1e,function(t){
  90. t.find("div.tree-node-selected").removeClass("tree-node-selected");
  91. var _21=t.tree("find",_1f);
  92. if(_21){
  93. $(_21.target).addClass("tree-node-selected");
  94. _20.selectedItemId=_21.id;
  95. t.trigger("mouseleave");
  96. _20.onSelect.call(_1e,_21);
  97. }
  98. });
  99. };
  100. function _22(_23,_24){
  101. _1b(_23,function(t){
  102. var _25=t.tree("find",_24.id);
  103. if(_25){
  104. t.tree(_24.state=="open"?"expand":"collapse",_25.target);
  105. }
  106. });
  107. };
  108. function _26(_27){
  109. var _28=$(_27).sidemenu("options");
  110. $(_27).empty();
  111. if(_28.data){
  112. $.easyui.forEach(_28.data,true,function(_29){
  113. if(!_29.id){
  114. _29.id="_easyui_sidemenu_"+(_1++);
  115. }
  116. if(!_29.iconCls){
  117. _29.iconCls="sidemenu-default-icon";
  118. }
  119. if(_29.children){
  120. _29.nodeCls="tree-node-nonleaf";
  121. if(!_29.state){
  122. _29.state="closed";
  123. }
  124. if(_29.state=="open"){
  125. _29.nodeCls="tree-node-nonleaf";
  126. }else{
  127. _29.nodeCls="tree-node-nonleaf tree-node-nonleaf-collapsed";
  128. }
  129. }
  130. });
  131. var acc=$("<div></div>").appendTo(_27);
  132. acc.accordion({fit:_28.height=="auto"?false:true,border:_28.border,multiple:_28.multiple});
  133. var _2a=_28.data;
  134. for(var i=0;i<_2a.length;i++){
  135. acc.accordion("add",{title:_2a[i].text,selected:_2a[i].state=="open",iconCls:_2a[i].iconCls});
  136. var ap=acc.accordion("panels")[i];
  137. _8(_27,ap,_2a[i].children);
  138. _13(_27,ap.panel("header"),_2a[i]);
  139. }
  140. }
  141. };
  142. function _2b(_2c,_2d){
  143. var _2e=$(_2c).sidemenu("options");
  144. _2e.collapsed=_2d;
  145. var acc=$(_2c).find(".accordion");
  146. var _2f=acc.accordion("panels");
  147. acc.accordion("options").animate=false;
  148. if(_2e.collapsed){
  149. $(_2c).addClass("sidemenu-collapsed");
  150. for(var i=0;i<_2f.length;i++){
  151. var _30=_2f[i];
  152. if(_30.panel("options").collapsed){
  153. _2e.data[i].state="closed";
  154. }else{
  155. _2e.data[i].state="open";
  156. acc.accordion("unselect",i);
  157. }
  158. var _31=_30.panel("header");
  159. _31.find(".panel-title").html("");
  160. _31.find(".panel-tool").hide();
  161. }
  162. }else{
  163. $(_2c).removeClass("sidemenu-collapsed");
  164. for(var i=0;i<_2f.length;i++){
  165. var _30=_2f[i];
  166. if(_2e.data[i].state=="open"){
  167. acc.accordion("select",i);
  168. }
  169. var _31=_30.panel("header");
  170. _31.find(".panel-title").html(_30.panel("options").title);
  171. _31.find(".panel-tool").show();
  172. }
  173. }
  174. acc.accordion("options").animate=_2e.animate;
  175. };
  176. function _32(_33){
  177. $(_33).find(".tooltip-f").each(function(){
  178. $(this).tooltip("destroy");
  179. });
  180. $(_33).remove();
  181. };
  182. $.fn.sidemenu=function(_34,_35){
  183. if(typeof _34=="string"){
  184. var _36=$.fn.sidemenu.methods[_34];
  185. return _36(this,_35);
  186. }
  187. _34=_34||{};
  188. return this.each(function(){
  189. var _37=$.data(this,"sidemenu");
  190. if(_37){
  191. $.extend(_37.options,_34);
  192. }else{
  193. _37=$.data(this,"sidemenu",{options:$.extend({},$.fn.sidemenu.defaults,$.fn.sidemenu.parseOptions(this),_34)});
  194. _2(this);
  195. }
  196. _4(this);
  197. _26(this);
  198. _2b(this,_37.options.collapsed);
  199. });
  200. };
  201. $.fn.sidemenu.methods={options:function(jq){
  202. return jq.data("sidemenu").options;
  203. },resize:function(jq,_38){
  204. return jq.each(function(){
  205. _4(this,_38);
  206. });
  207. },collapse:function(jq){
  208. return jq.each(function(){
  209. _2b(this,true);
  210. });
  211. },expand:function(jq){
  212. return jq.each(function(){
  213. _2b(this,false);
  214. });
  215. },destroy:function(jq){
  216. return jq.each(function(){
  217. _32(this);
  218. });
  219. }};
  220. $.fn.sidemenu.parseOptions=function(_39){
  221. var t=$(_39);
  222. return $.extend({},$.parser.parseOptions(_39,["width","height"]));
  223. };
  224. $.fn.sidemenu.defaults={width:200,height:"auto",border:true,animate:true,multiple:true,collapsed:false,data:null,floatMenuWidth:200,floatMenuPosition:"right",onSelect:function(_3a){
  225. }};
  226. })(jQuery);