jquery.Spinner.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* jQuery.Spinner V1.0 CopyRight (c) 2014 by:Loyaoo Taobao:http://isseven.taobao.com */
  2. (function($) {
  3. $.fn.Spinner = function (opts) {
  4. var defaults = {value:1, min:1, len:3, max:99}
  5. var options = $.extend(defaults, opts)
  6. var keyCodes = {up:38, down:40}
  7. return this.each(function() {
  8. var a = $('<a></a>'); f(a,0,"Decrease","-"); //加
  9. var c = $('<a></a>'); f(c,0,"Increase","+"); //减
  10. var b = $('<input/>');f(b,1,"Amount");cv(0); //值
  11. $(this).append(a).append(b).append(c);
  12. a.click(function(){cv(-1)});
  13. b.keyup(function(){cv(0)});
  14. c.click(function(){cv(+1)});
  15. b.bind('keyup paste change',function(e){
  16. e.keyCode==keyCodes.up&&cv(+1);
  17. e.keyCode==keyCodes.down&&cv(-1);
  18. });
  19. function cv(n){
  20. b.val(b.val().replace(/[^\d]/g,''));
  21. bv=parseInt(b.val()||options.min)+n;
  22. bv>=options.min&&bv<=options.max&&b.val(bv);
  23. if(bv<=options.min){b.val(options.min);f(a,2,"DisDe","Decrease");}else{f(a,2,"Decrease","DisDe");}
  24. if(bv>=options.max){b.val(options.max);f(c,2,"DisIn","Increase");}else{f(c,2,"Increase","DisIn");}
  25. }
  26. });
  27. function f(o,t,c,s){
  28. t==0&&o.addClass(c).attr("href","javascript:void(0)").append("<i></i>").find("i").append(s);
  29. t==1&&o.addClass(c).attr({"value":options.value,"autocomplete":"off","maxlength":options.len});
  30. t==2&&o.addClass(c).removeClass(s);
  31. }
  32. }
  33. })(jQuery);