jquery.timespinner.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. /**
  2. * jQuery EasyUI 1.4.4
  3. *
  4. * Copyright (c) 2009-2015 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. function _1(_2){
  12. var _3=0;
  13. if(typeof _2.selectionStart=="number"){
  14. _3=_2.selectionStart;
  15. }else{
  16. if(_2.createTextRange){
  17. var _4=_2.createTextRange();
  18. var s=document.selection.createRange();
  19. s.setEndPoint("StartToStart",_4);
  20. _3=s.text.length;
  21. }
  22. }
  23. return _3;
  24. };
  25. function _5(_6,_7,_8){
  26. if(_6.setSelectionRange){
  27. _6.setSelectionRange(_7,_8);
  28. }else{
  29. if(_6.createTextRange){
  30. var _9=_6.createTextRange();
  31. _9.collapse();
  32. _9.moveEnd("character",_8);
  33. _9.moveStart("character",_7);
  34. _9.select();
  35. }
  36. }
  37. };
  38. function _a(_b){
  39. var _c=$.data(_b,"timespinner").options;
  40. $(_b).addClass("timespinner-f").spinner(_c);
  41. var _d=_c.formatter.call(_b,_c.parser.call(_b,_c.value));
  42. $(_b).timespinner("initValue",_d);
  43. };
  44. function _e(e){
  45. var _f=e.data.target;
  46. var _10=$.data(_f,"timespinner").options;
  47. var _11=_1(this);
  48. for(var i=0;i<_10.selections.length;i++){
  49. var _12=_10.selections[i];
  50. if(_11>=_12[0]&&_11<=_12[1]){
  51. _13(_f,i);
  52. return;
  53. }
  54. }
  55. };
  56. function _13(_14,_15){
  57. var _16=$.data(_14,"timespinner").options;
  58. if(_15!=undefined){
  59. _16.highlight=_15;
  60. }
  61. var _17=_16.selections[_16.highlight];
  62. if(_17){
  63. var tb=$(_14).timespinner("textbox");
  64. _5(tb[0],_17[0],_17[1]);
  65. tb.focus();
  66. }
  67. };
  68. function _18(_19,_1a){
  69. var _1b=$.data(_19,"timespinner").options;
  70. var _1a=_1b.parser.call(_19,_1a);
  71. var _1c=_1b.formatter.call(_19,_1a);
  72. $(_19).spinner("setValue",_1c);
  73. };
  74. function _1d(_1e,_1f){
  75. var _20=$.data(_1e,"timespinner").options;
  76. var s=$(_1e).timespinner("getValue");
  77. var _21=_20.selections[_20.highlight];
  78. var s1=s.substring(0,_21[0]);
  79. var s2=s.substring(_21[0],_21[1]);
  80. var s3=s.substring(_21[1]);
  81. var v=s1+((parseInt(s2,10)||0)+_20.increment*(_1f?-1:1))+s3;
  82. $(_1e).timespinner("setValue",v);
  83. _13(_1e);
  84. };
  85. $.fn.timespinner=function(_22,_23){
  86. if(typeof _22=="string"){
  87. var _24=$.fn.timespinner.methods[_22];
  88. if(_24){
  89. return _24(this,_23);
  90. }else{
  91. return this.spinner(_22,_23);
  92. }
  93. }
  94. _22=_22||{};
  95. return this.each(function(){
  96. var _25=$.data(this,"timespinner");
  97. if(_25){
  98. $.extend(_25.options,_22);
  99. }else{
  100. $.data(this,"timespinner",{options:$.extend({},$.fn.timespinner.defaults,$.fn.timespinner.parseOptions(this),_22)});
  101. }
  102. _a(this);
  103. });
  104. };
  105. $.fn.timespinner.methods={options:function(jq){
  106. var _26=jq.data("spinner")?jq.spinner("options"):{};
  107. return $.extend($.data(jq[0],"timespinner").options,{width:_26.width,value:_26.value,originalValue:_26.originalValue,disabled:_26.disabled,readonly:_26.readonly});
  108. },setValue:function(jq,_27){
  109. return jq.each(function(){
  110. _18(this,_27);
  111. });
  112. },getHours:function(jq){
  113. var _28=$.data(jq[0],"timespinner").options;
  114. var vv=jq.timespinner("getValue").split(_28.separator);
  115. return parseInt(vv[0],10);
  116. },getMinutes:function(jq){
  117. var _29=$.data(jq[0],"timespinner").options;
  118. var vv=jq.timespinner("getValue").split(_29.separator);
  119. return parseInt(vv[1],10);
  120. },getSeconds:function(jq){
  121. var _2a=$.data(jq[0],"timespinner").options;
  122. var vv=jq.timespinner("getValue").split(_2a.separator);
  123. return parseInt(vv[2],10)||0;
  124. }};
  125. $.fn.timespinner.parseOptions=function(_2b){
  126. return $.extend({},$.fn.spinner.parseOptions(_2b),$.parser.parseOptions(_2b,["separator",{showSeconds:"boolean",highlight:"number"}]));
  127. };
  128. $.fn.timespinner.defaults=$.extend({},$.fn.spinner.defaults,{inputEvents:$.extend({},$.fn.spinner.defaults.inputEvents,{click:function(e){
  129. _e.call(this,e);
  130. },blur:function(e){
  131. var t=$(e.data.target);
  132. t.timespinner("setValue",t.timespinner("getText"));
  133. },keydown:function(e){
  134. if(e.keyCode==13){
  135. var t=$(e.data.target);
  136. t.timespinner("setValue",t.timespinner("getText"));
  137. }
  138. }}),formatter:function(_2c){
  139. if(!_2c){
  140. return "";
  141. }
  142. var _2d=$(this).timespinner("options");
  143. var tt=[_2e(_2c.getHours()),_2e(_2c.getMinutes())];
  144. if(_2d.showSeconds){
  145. tt.push(_2e(_2c.getSeconds()));
  146. }
  147. return tt.join(_2d.separator);
  148. function _2e(_2f){
  149. return (_2f<10?"0":"")+_2f;
  150. };
  151. },parser:function(s){
  152. var _30=$(this).timespinner("options");
  153. var _31=_32(s);
  154. if(_31){
  155. var min=_32(_30.min);
  156. var max=_32(_30.max);
  157. if(min&&min>_31){
  158. _31=min;
  159. }
  160. if(max&&max<_31){
  161. _31=max;
  162. }
  163. }
  164. return _31;
  165. function _32(s){
  166. if(!s){
  167. return null;
  168. }
  169. var tt=s.split(_30.separator);
  170. return new Date(1900,0,0,parseInt(tt[0],10)||0,parseInt(tt[1],10)||0,parseInt(tt[2],10)||0);
  171. };
  172. },selections:[[0,2],[3,5],[6,8]],separator:":",showSeconds:false,highlight:0,spin:function(_33){
  173. _1d(this,_33);
  174. }});
  175. })(jQuery);