32191a96eed77142d55fade369a08345bdc8a693.svn-base 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. /**
  2. * jQuery EasyUI 1.3.6
  3. *
  4. * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
  7. * To use it on other terms please contact us at info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. $(_2).addClass("tooltip-f");
  13. };
  14. function _3(_4){
  15. var _5=$.data(_4,"tooltip").options;
  16. $(_4).unbind(".tooltip").bind(_5.showEvent+".tooltip",function(e){
  17. _10(_4,e);
  18. }).bind(_5.hideEvent+".tooltip",function(e){
  19. _17(_4,e);
  20. }).bind("mousemove.tooltip",function(e){
  21. if(_5.trackMouse){
  22. _5.trackMouseX=e.pageX;
  23. _5.trackMouseY=e.pageY;
  24. _6(_4);
  25. }
  26. });
  27. };
  28. function _7(_8){
  29. var _9=$.data(_8,"tooltip");
  30. if(_9.showTimer){
  31. clearTimeout(_9.showTimer);
  32. _9.showTimer=null;
  33. }
  34. if(_9.hideTimer){
  35. clearTimeout(_9.hideTimer);
  36. _9.hideTimer=null;
  37. }
  38. };
  39. function _6(_a){
  40. var _b=$.data(_a,"tooltip");
  41. if(!_b||!_b.tip){
  42. return;
  43. }
  44. var _c=_b.options;
  45. var _d=_b.tip;
  46. if(_c.trackMouse){
  47. t=$();
  48. var _e=_c.trackMouseX+_c.deltaX;
  49. var _f=_c.trackMouseY+_c.deltaY;
  50. }else{
  51. var t=$(_a);
  52. var _e=t.offset().left+_c.deltaX;
  53. var _f=t.offset().top+_c.deltaY;
  54. }
  55. switch(_c.position){
  56. case "right":
  57. _e+=t._outerWidth()+12+(_c.trackMouse?12:0);
  58. _f-=(_d._outerHeight()-t._outerHeight())/2;
  59. break;
  60. case "left":
  61. _e-=_d._outerWidth()+12+(_c.trackMouse?12:0);
  62. _f-=(_d._outerHeight()-t._outerHeight())/2;
  63. break;
  64. case "top":
  65. _e-=(_d._outerWidth()-t._outerWidth())/2;
  66. _f-=_d._outerHeight()+12+(_c.trackMouse?12:0);
  67. break;
  68. case "bottom":
  69. _e-=(_d._outerWidth()-t._outerWidth())/2;
  70. _f+=t._outerHeight()+12+(_c.trackMouse?12:0);
  71. break;
  72. }
  73. if(!$(_a).is(":visible")){
  74. _e=-100000;
  75. _f=-100000;
  76. }
  77. _d.css({left:_e,top:_f,zIndex:(_c.zIndex!=undefined?_c.zIndex:($.fn.window?$.fn.window.defaults.zIndex++:""))});
  78. _c.onPosition.call(_a,_e,_f);
  79. };
  80. function _10(_11,e){
  81. var _12=$.data(_11,"tooltip");
  82. var _13=_12.options;
  83. var tip=_12.tip;
  84. if(!tip){
  85. tip=$("<div tabindex=\"-1\" class=\"tooltip\">"+"<div class=\"tooltip-content\"></div>"+"<div class=\"tooltip-arrow-outer\"></div>"+"<div class=\"tooltip-arrow\"></div>"+"</div>").appendTo("body");
  86. _12.tip=tip;
  87. _14(_11);
  88. }
  89. tip.removeClass("tooltip-top tooltip-bottom tooltip-left tooltip-right").addClass("tooltip-"+_13.position);
  90. _7(_11);
  91. _12.showTimer=setTimeout(function(){
  92. _6(_11);
  93. tip.show();
  94. _13.onShow.call(_11,e);
  95. var _15=tip.children(".tooltip-arrow-outer");
  96. var _16=tip.children(".tooltip-arrow");
  97. var bc="border-"+_13.position+"-color";
  98. _15.add(_16).css({borderTopColor:"",borderBottomColor:"",borderLeftColor:"",borderRightColor:""});
  99. _15.css(bc,tip.css(bc));
  100. _16.css(bc,tip.css("backgroundColor"));
  101. },_13.showDelay);
  102. };
  103. function _17(_18,e){
  104. var _19=$.data(_18,"tooltip");
  105. if(_19&&_19.tip){
  106. _7(_18);
  107. _19.hideTimer=setTimeout(function(){
  108. _19.tip.hide();
  109. _19.options.onHide.call(_18,e);
  110. },_19.options.hideDelay);
  111. }
  112. };
  113. function _14(_1a,_1b){
  114. var _1c=$.data(_1a,"tooltip");
  115. var _1d=_1c.options;
  116. if(_1b){
  117. _1d.content=_1b;
  118. }
  119. if(!_1c.tip){
  120. return;
  121. }
  122. var cc=typeof _1d.content=="function"?_1d.content.call(_1a):_1d.content;
  123. _1c.tip.children(".tooltip-content").html(cc);
  124. _1d.onUpdate.call(_1a,cc);
  125. };
  126. function _1e(_1f){
  127. var _20=$.data(_1f,"tooltip");
  128. if(_20){
  129. _7(_1f);
  130. var _21=_20.options;
  131. if(_20.tip){
  132. _20.tip.remove();
  133. }
  134. if(_21._title){
  135. $(_1f).attr("title",_21._title);
  136. }
  137. $.removeData(_1f,"tooltip");
  138. $(_1f).unbind(".tooltip").removeClass("tooltip-f");
  139. _21.onDestroy.call(_1f);
  140. }
  141. };
  142. $.fn.tooltip=function(_22,_23){
  143. if(typeof _22=="string"){
  144. return $.fn.tooltip.methods[_22](this,_23);
  145. }
  146. _22=_22||{};
  147. return this.each(function(){
  148. var _24=$.data(this,"tooltip");
  149. if(_24){
  150. $.extend(_24.options,_22);
  151. }else{
  152. $.data(this,"tooltip",{options:$.extend({},$.fn.tooltip.defaults,$.fn.tooltip.parseOptions(this),_22)});
  153. _1(this);
  154. }
  155. _3(this);
  156. _14(this);
  157. });
  158. };
  159. $.fn.tooltip.methods={options:function(jq){
  160. return $.data(jq[0],"tooltip").options;
  161. },tip:function(jq){
  162. return $.data(jq[0],"tooltip").tip;
  163. },arrow:function(jq){
  164. return jq.tooltip("tip").children(".tooltip-arrow-outer,.tooltip-arrow");
  165. },show:function(jq,e){
  166. return jq.each(function(){
  167. _10(this,e);
  168. });
  169. },hide:function(jq,e){
  170. return jq.each(function(){
  171. _17(this,e);
  172. });
  173. },update:function(jq,_25){
  174. return jq.each(function(){
  175. _14(this,_25);
  176. });
  177. },reposition:function(jq){
  178. return jq.each(function(){
  179. _6(this);
  180. });
  181. },destroy:function(jq){
  182. return jq.each(function(){
  183. _1e(this);
  184. });
  185. }};
  186. $.fn.tooltip.parseOptions=function(_26){
  187. var t=$(_26);
  188. var _27=$.extend({},$.parser.parseOptions(_26,["position","showEvent","hideEvent","content",{deltaX:"number",deltaY:"number",showDelay:"number",hideDelay:"number"}]),{_title:t.attr("title")});
  189. t.attr("title","");
  190. if(!_27.content){
  191. _27.content=_27._title;
  192. }
  193. return _27;
  194. };
  195. $.fn.tooltip.defaults={position:"bottom",content:null,trackMouse:false,deltaX:0,deltaY:0,showEvent:"mouseenter",hideEvent:"mouseleave",showDelay:200,hideDelay:100,onShow:function(e){
  196. },onHide:function(e){
  197. },onUpdate:function(_28){
  198. },onPosition:function(_29,top){
  199. },onDestroy:function(){
  200. }};
  201. })(jQuery);