【问题标题】:D3 Graph with background AJAX update: cannot redraw graph具有背景 AJAX 更新的 D3 图形:无法重绘图形
【发布时间】:2020-02-08 14:32:20
【问题描述】:

我对 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。 再说一次,我在这里完全是个菜鸟……而且我肯定错过了一些东西。 请问我可以寻求帮助吗? 谢谢!

【问题讨论】:

    标签: javascript ajax d3.js


    【解决方案1】:

    添加一个

    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));
    

    【讨论】:

    • 谢谢,确实这个值是字符串而不是数字,这就是问题所在:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多