6

我正在使用JQuery Knob制作一些很酷的图表,并且运行良好。但是我有一个问题:我想让图表之间的显示数字连接一个'%'符号。但我似乎无法让它发挥作用。通过 jquery 修改输入不会这样做,我已经尝试读入库的代码但没有运气。以前有没有其他人遇到过这个问题?

4

3 回答 3

30

如果您快速浏览一下 github 存储库,您会发现每次绘制画布时都会调用一个绘制钩子。如果你实现了那个钩子,你应该能够在输入中添加任何你想要的东西。这是您正在寻找的功能的简短示例(尝试一下: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>​
于 2012-09-24T05:44:46.487 回答
5

从 1.2.7 版开始,现在有一个format钩子可以执行如下任务:

$(".dial").knob({
  'format' : function (value) {
     return value + '%';
  }
});
于 2014-06-20T17:36:18.043 回答
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() + '%');
               }

           })   
       });

    });
于 2013-10-14T13:18:46.883 回答