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