繁体   English   中英

Charts.js更新全局变量

[英]charts.js update global variables

在使以下内容正常工作时遇到了一些问题。 我不确定是否有可能阅读一些有关在Charts.js中重新创建图形的文章,但不确定是否需要这样做。 将值从函数传递到donutData变量的简单示例。

    <!doctype html>
 <html>
<head>
    <title>Doughnut Chart</title>
    <script src="../Chart.js"></script>
    <style>
        body{
            padding: 0;
            margin: 0;
        }
        #canvas-holder{
            width:30%;
        }
    </style>
</head>
<body>
    <div id="canvas-holder">
        <canvas id="chart-area" width="500" height="500"/>
    </div>

<div id="demo">dd</div>

<button onclick="myFunction(20,30,50)">Click me</button>


<script>

var doughnutData = {};

function myFunction(a,b,c)
        {

            var item1 = parseInt(a);
            var item2 = parseInt(b);
            var item3 = parseInt(c);

            var total = item1 + item2 + item3;

            var ITEM1PERCENT = (item1 / total) * 100;
            var ITEM2PERCENT = (item2 / total) * 100;
            var ITEM3PERCENT = (item3 / total) * 100;

            if(isNaN(ITEM1PERCENT)) {
                var ITEM1PERCENT = 0;
            }
            if(isNaN(ITEM2PERCENT)) {
                var ITEM2PERCENT = 0;
            }
            if(isNaN(ITEM3PERCENT)) {
                var ITEM3PERCENT = 0;
            }

            var doughnutData = [
            {
                value: ITEM1PERCENT.toFixed(2),
                color:"#F7464A",
                highlight: "#FF5A5E",
                label: "Red"
            },
            {
                value: ITEM2PERCENT.toFixed(2),
                color: "#46BFBD",
                highlight: "#5AD3D1",
                label: "Green"
            },
            {
                value: ITEM3PERCENT.toFixed(2),
                color: "#FDB45C",
                highlight: "#FFC870",
                label: "Yellow"
            }

        ];



    loadFunction();
            document.getElementById("demo").innerHTML = doughnutData;
        }

    function loadFunction()
                {
        var ctx = document.getElementById("chart-area").getContext("2d");
        window.myDoughnut = new Chart(ctx).Doughnut(doughnutData, {responsive : true});
        }


        window.onload = function(){
            var ctx = document.getElementById("chart-area").getContext("2d");
            window.myDoughnut = new Chart(ctx).Doughnut(doughnutData, {responsive : true});
        };

myFunction(1,2,3);

</script>
</body>
</html>

任何指针或帮助表示赞赏。

您将在myFunction(..)中使用“ varoughnutData”定义局部变量“ doughnutData”。 删除该“ var”并将其设为全局。

 doughnutData = [
        {
            value: ITEM1PERCENT.toFixed(2),
            color:"#F7464A",
            highlight: "#FF5A5E",
            label: "Red"
        },
        {
            value: ITEM2PERCENT.toFixed(2),
            color: "#46BFBD",
            highlight: "#5AD3D1",
            label: "Green"
        },
        {
            value: ITEM3PERCENT.toFixed(2),
            color: "#FDB45C",
            highlight: "#FFC870",
            label: "Yellow"
        }

    ];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM