fw.tab.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /**
  2. * @author herong
  3. * Tab页组件
  4. */
  5. var CFWTab = _FW.fCreateClass();
  6. /**
  7. * Tab页组件API
  8. */
  9. CFWTab.prototype = {
  10. /**
  11. * 初始化
  12. * */
  13. fInitialize : function(options) {
  14. },
  15. /**
  16. * 单击某个tab页面时触发 doClicked
  17. * @param sTabId tab页面id
  18. * <pre>
  19. * 使用举例:
  20. * CFW.oTab.doClicked(sTabId, func);
  21. * </pre>
  22. */
  23. doClicked: function(sTabId, func){
  24. var tabId = "a[rel='" + sTabId + "']";
  25. $(tabId).bind("click", this, function(){
  26. var obj = {};
  27. obj.ID = sTabId;
  28. func(obj);
  29. });
  30. },
  31. /**
  32. * 双击某个tab页面时触发 doDoubleClicked
  33. * @param sTabId tab页面id
  34. * <pre>
  35. * 使用举例:
  36. * CFW.oTab.doDoubleClicked(sTabId, func);
  37. * </pre>
  38. */
  39. doDoubleClicked: function(sTabId, func){
  40. var tabId = "a[href='#" + sTabId + "']";
  41. $(tabId).bind("dblclick", this, function(){
  42. var obj = {};
  43. obj.ID = sTabId;
  44. func(obj);
  45. });
  46. },
  47. /**
  48. * 将Tab页隐藏
  49. * @param sTabId tab页面id
  50. * <pre>
  51. * 使用举例:
  52. * CFW.oTab.fnTabHide(sTabId);
  53. * </pre>
  54. */
  55. fnTabHide : function (sTabId){
  56. var tabId = "#" + sTabId;
  57. $(tabId).hide();
  58. tabId = "a[href='" + tabId + "']";
  59. $(tabId).hide();
  60. //取父tab
  61. var tabParId = $("#"+sTabId).parent()[0].id;
  62. //取当前选用的tab
  63. tabParId = "#" + tabParId;
  64. var i = $(tabParId).tabs('option', 'selected');
  65. var tabSelId = $(tabParId+" [myclass = 'fwtab']")[i].id;
  66. //如果不是当前页就不用跳
  67. if(tabSelId == sTabId){
  68. var showTab = $(tabId).parent().next().children().attr("href");
  69. if(showTab == null || showTab == ''){
  70. showTab = $(tabId).parent().prev().children().attr("href");
  71. }
  72. $(tabId).parent().parent().parent().tabs("select", showTab);
  73. }
  74. },
  75. /**
  76. * 将Tab页显示
  77. * @param sTabId tab页面id
  78. * <pre>
  79. * 使用举例:
  80. * CFW.oTab.fnTabShow(sTabId);
  81. * </pre>
  82. */
  83. fnTabShow : function (sTabId){
  84. var tabId = "#" + sTabId;
  85. $(tabId).show();
  86. tabId = "a[href='" + tabId + "']";
  87. $(tabId).show();
  88. $(tabId).parent().parent().parent().tabs("select", sTabId);
  89. },
  90. /**
  91. * 设置Tab不可选择
  92. * @param sTabId tab页面id
  93. * <pre>
  94. * 使用举例:
  95. * CFW.oTab.fnSetDisable(sTabId);
  96. * </pre>
  97. */
  98. fnSetDisable : function (sTabId){
  99. var tabId = "#" + sTabId;
  100. $(tabId).parent().tabs("disable", tabId); // 刷新列表
  101. },
  102. /**
  103. * 设置Tab可被选择
  104. * @param sTabId tab页面id
  105. * <pre>
  106. * 使用举例:
  107. * CFW.oTab.fnSetEnable(sTabId);
  108. * </pre>
  109. */
  110. fnSetEnable : function (sTabId){
  111. var tabId = "#" + sTabId;
  112. $(tabId).parent().tabs("enable", tabId); // 刷新列表
  113. },
  114. /**
  115. * 选择指定tabID相对应的界面
  116. * @param sTabId tab页面id
  117. * <pre>
  118. * 使用举例:
  119. * CFW.oTab.fnSelectTab(sTabId);
  120. * </pre>
  121. */
  122. fnSelectTab : function (sTabId){
  123. var tabId = "#" + sTabId;
  124. $(tabId).parent().tabs("select", tabId); // 刷新列表
  125. },
  126. /**
  127. * 获取选中的Tab页面所对应的TabID
  128. * @param sTabId tab页面id
  129. * @return TabID
  130. * <pre>
  131. * 使用举例:
  132. * CFW.oTab.fnGetSelectedTab(sTabId);
  133. * </pre>
  134. */
  135. fnGetSelectedTab : function (sTabId){
  136. var tabId = "#" + sTabId;
  137. var i = $(tabId).tabs('option', 'selected');
  138. return $(tabId+" [myclass = 'fwtab']")[i].id;
  139. },
  140. /**
  141. * 功能简介:指定hnisi:tabPanel第N个TAB换行
  142. * @param sTabId 字符串,必填,指定hnisi:tabPanel的id
  143. * @param aIndex 数字,或者数字数组,必填,指定要换行的TAB的序号
  144. * @returns
  145. * <pre>
  146. * 例子1:指定id为mypanel的tabPanel第5个标签后换行
  147. * CFW.oTab.fnSetTabHeader('mypanel',5);
  148. * 例子2:指定id为mypanel的tabPanel第5和第10个标签后换行
  149. * CFW.oTab.fnSetTabHeader('mypanel',[5,10]);
  150. * </pre>
  151. */
  152. fnSetTabHeader : function(sTabId,aIndex){
  153. if(!$.isArray(aIndex)){
  154. aIndex = [aIndex];
  155. }
  156. var $lis = $("#"+ sTabId +" ul li");
  157. for(var i=0,len=aIndex.length;i<len;i++){
  158. var $li = $lis.eq(aIndex[i]-1);
  159. if(0 == i){
  160. $li.after("<LI id='crlf' style='font-size:40%; visibility:visible;float:none;clear:left;'></LI>");
  161. }else{
  162. $li.after("<LI id='crlf' style='font-size:50%; visibility:visible;float:none;clear:left;'></LI>");
  163. }
  164. }
  165. }
  166. };