jquery.spinner.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. var _3=$("<span class=\"spinner\">"+"<span class=\"spinner-arrow\">"+"<span class=\"spinner-arrow-up\"></span>"+"<span class=\"spinner-arrow-down\"></span>"+"</span>"+"</span>").insertAfter(_2);
  13. $(_2).addClass("spinner-text spinner-f").prependTo(_3);
  14. return _3;
  15. };
  16. function _4(_5,_6){
  17. var _7=$.data(_5,"spinner").options;
  18. var _8=$.data(_5,"spinner").spinner;
  19. if(_6){
  20. _7.width=_6;
  21. }
  22. var _9=$("<div style=\"display:none\"></div>").insertBefore(_8);
  23. _8.appendTo("body");
  24. if(isNaN(_7.width)){
  25. _7.width=$(_5).outerWidth();
  26. }
  27. var _a=_8.find(".spinner-arrow");
  28. _8._outerWidth(_7.width)._outerHeight(_7.height);
  29. $(_5)._outerWidth(_8.width()-_a.outerWidth());
  30. $(_5).css({height:_8.height()+"px",lineHeight:_8.height()+"px"});
  31. _a._outerHeight(_8.height());
  32. _a.find("span")._outerHeight(_a.height()/2);
  33. _8.insertAfter(_9);
  34. _9.remove();
  35. };
  36. function _b(_c){
  37. var _d=$.data(_c,"spinner").options;
  38. var _e=$.data(_c,"spinner").spinner;
  39. $(_c).unbind(".spinner");
  40. _e.find(".spinner-arrow-up,.spinner-arrow-down").unbind(".spinner");
  41. if(!_d.disabled&&!_d.readonly){
  42. _e.find(".spinner-arrow-up").bind("mouseenter.spinner",function(){
  43. $(this).addClass("spinner-arrow-hover");
  44. }).bind("mouseleave.spinner",function(){
  45. $(this).removeClass("spinner-arrow-hover");
  46. }).bind("click.spinner",function(){
  47. _d.spin.call(_c,false);
  48. _d.onSpinUp.call(_c);
  49. $(_c).validatebox("validate");
  50. });
  51. _e.find(".spinner-arrow-down").bind("mouseenter.spinner",function(){
  52. $(this).addClass("spinner-arrow-hover");
  53. }).bind("mouseleave.spinner",function(){
  54. $(this).removeClass("spinner-arrow-hover");
  55. }).bind("click.spinner",function(){
  56. _d.spin.call(_c,true);
  57. _d.onSpinDown.call(_c);
  58. $(_c).validatebox("validate");
  59. });
  60. $(_c).bind("change.spinner",function(){
  61. $(this).spinner("setValue",$(this).val());
  62. });
  63. }
  64. };
  65. function _f(_10,_11){
  66. var _12=$.data(_10,"spinner").options;
  67. if(_11){
  68. _12.disabled=true;
  69. $(_10).attr("disabled",true);
  70. }else{
  71. _12.disabled=false;
  72. $(_10).removeAttr("disabled");
  73. }
  74. };
  75. function _13(_14,_15){
  76. var _16=$.data(_14,"spinner");
  77. var _17=_16.options;
  78. _17.readonly=_15==undefined?true:_15;
  79. var _18=_17.readonly?true:(!_17.editable);
  80. $(_14).attr("readonly",_18).css("cursor",_18?"pointer":"");
  81. };
  82. $.fn.spinner=function(_19,_1a){
  83. if(typeof _19=="string"){
  84. var _1b=$.fn.spinner.methods[_19];
  85. if(_1b){
  86. return _1b(this,_1a);
  87. }else{
  88. return this.validatebox(_19,_1a);
  89. }
  90. }
  91. _19=_19||{};
  92. return this.each(function(){
  93. var _1c=$.data(this,"spinner");
  94. if(_1c){
  95. $.extend(_1c.options,_19);
  96. }else{
  97. _1c=$.data(this,"spinner",{options:$.extend({},$.fn.spinner.defaults,$.fn.spinner.parseOptions(this),_19),spinner:_1(this)});
  98. $(this).removeAttr("disabled");
  99. }
  100. _1c.options.originalValue=_1c.options.value;
  101. $(this).val(_1c.options.value);
  102. _f(this,_1c.options.disabled);
  103. _13(this,_1c.options.readonly);
  104. _4(this);
  105. $(this).validatebox(_1c.options);
  106. _b(this);
  107. });
  108. };
  109. $.fn.spinner.methods={options:function(jq){
  110. var _1d=$.data(jq[0],"spinner").options;
  111. return $.extend(_1d,{value:jq.val()});
  112. },destroy:function(jq){
  113. return jq.each(function(){
  114. var _1e=$.data(this,"spinner").spinner;
  115. $(this).validatebox("destroy");
  116. _1e.remove();
  117. });
  118. },resize:function(jq,_1f){
  119. return jq.each(function(){
  120. _4(this,_1f);
  121. });
  122. },enable:function(jq){
  123. return jq.each(function(){
  124. _f(this,false);
  125. _b(this);
  126. });
  127. },disable:function(jq){
  128. return jq.each(function(){
  129. _f(this,true);
  130. _b(this);
  131. });
  132. },readonly:function(jq,_20){
  133. return jq.each(function(){
  134. _13(this,_20);
  135. _b(this);
  136. });
  137. },getValue:function(jq){
  138. return jq.val();
  139. },setValue:function(jq,_21){
  140. return jq.each(function(){
  141. var _22=$.data(this,"spinner").options;
  142. var _23=_22.value;
  143. _22.value=_21;
  144. $(this).val(_21);
  145. if(_23!=_21){
  146. _22.onChange.call(this,_21,_23);
  147. }
  148. });
  149. },clear:function(jq){
  150. return jq.each(function(){
  151. var _24=$.data(this,"spinner").options;
  152. _24.value="";
  153. $(this).val("");
  154. });
  155. },reset:function(jq){
  156. return jq.each(function(){
  157. var _25=$(this).spinner("options");
  158. $(this).spinner("setValue",_25.originalValue);
  159. });
  160. }};
  161. $.fn.spinner.parseOptions=function(_26){
  162. var t=$(_26);
  163. return $.extend({},$.fn.validatebox.parseOptions(_26),$.parser.parseOptions(_26,["width","height","min","max",{increment:"number",editable:"boolean"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),readonly:(t.attr("readonly")?true:undefined)});
  164. };
  165. $.fn.spinner.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,deltaX:19,value:"",min:null,max:null,increment:1,editable:true,disabled:false,readonly:false,spin:function(_27){
  166. },onSpinUp:function(){
  167. },onSpinDown:function(){
  168. },onChange:function(_28,_29){
  169. }});
  170. })(jQuery);