JQuery Knob显示数字更改

时间:2012-09-24 04:51:25

标签: php javascript jquery jquery-plugins

我正在使用JQuery Knob制作一些很酷的图表,而且效果非常好。但我有一个问题:我想让图表之间的显示数字连接起来'%'。但我似乎无法使它成功。通过jquery修改输入不会这样做,我已经尝试读入库的代码,但没有运气。还有其他人以前遇到过这个问题吗?

3 个答案:

答案 0 :(得分:30)

如果你快速浏览一下github repo,你会看到每次绘制画布时都会调用一个绘制钩子。如果你实现了这个钩子,你应该能够在输入中添加你想要的任何东西。以下是您正在寻找的功能的简短示例(尝试它:http://jsfiddle.net/eAQA2/)并供将来参考:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="https://raw.github.com/aterrien/jQuery-Knob/master/js/jquery.knob.js"></script>
<script>
$(function() {
    $(".dial").knob({
      'draw' : function () { 
        $(this.i).val(this.cv + '%')
      }
    })
})
</script>
</head>
<body>
<input type="text" class="dial" data-min="0" data-max="100">
</body>
</html>​

答案 1 :(得分:5)

从版本1.2.7开始,现在有一个format钩子用于执行这样的任务:

$(".dial").knob({
  'format' : function (value) {
     return value + '%';
  }
});

答案 2 :(得分:2)

我设法用动画实现了这个目标:

我的解决方案通过在每次增加值时添加百分比来实现此目的:

$(function() {
      $('.dial_overall').each(function () {

           var $this = $(this);
           var myVal = $this.attr("value");

           $this.knob({
           });

           $({
               value: 0 
           }).animate({

               value: myVal
           }, {
               duration: 1600,
               easing: 'swing',
               step: function () {
                   $this.val(Math.ceil(this.value)).trigger('change');
                     $('.dial_overall').val($('.dial_overall').val() + '%');
               }

           })   
       });

    });