我对 D3 还很陌生,所以我试图通过修改一些示例来学习。 使用this作为起点,( here's the working Pen ) 我尝试通过在后台使用 AJAX 获取数据来改变现状。
我尝试过使用此代码:
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: 'randomdata.php',
dataType: 'json',
async: false,
data: "{}",
success: function (data) {
var pos_data = data;
needle.moveTo(percent);
},
error: function (result) {
}
})
(randomdata.php 仅提供 0 到 100 之间的随机值)
..但是我没有得到任何针移动,即使只是在setTimeout 中调用needle.moveTo 也是如此。 再说一次,我在这里完全是个菜鸟……而且我肯定错过了一些东西。 我可以寻求帮助吗? 谢谢!
最佳答案
添加
console.log(percent + ", " + typeof(percent));
用于确定百分比变量值和变量类型的成功函数。
您的代码存在问题,因为在您的 codePen 示例命令中,例如
needle.moveTo(0.7);
needle.moveTo("0.7");
工作。所以我猜想函数调用没有有效的百分比值(从 0 到 1,而不是 0 到 100)或正确的格式(点,而不是逗号等)。
如果您的值介于 0 到 100 之间,则只需将调用更改为
needle.moveTo((percent/100).toFixed(2));
关于javascript - 带后台 AJAX 更新的 D3 图表 : cannot redraw graph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60127769/