如何制作从对象动态加载的图形

时间:2015-01-04 21:52:22

标签: javascript html json

$(document).ready(function () {

        var canvas = document.getElementById('canvas'),
            context = canvas.getContext('2d');

        function deseneazaGrafic(valori) {
            var h = canvas.height;
            var w = canvas.width / valori.length;

            context.fillStyle = "#DEDEDE";
            context.fillRect(0, 0, canvas.width, canvas.height);

            context.fillStyle = "red";
            context.strokeStyle = "black    ";
            context.lineWidth = 2;


            var f = canvas.height * 0.9 / Math.max.apply(Math, valori);

            for (var i = 0; i < valori.length; i++) {

                context.beginPath();
                context.rect((i + 0.1) * w, h - valori[i] * f, 0.8 * w, valori[i] * f);
                context.fill();
                context.stroke();
            }
        }



        $("#btnGrafic").click(function () {

            deseneazaGrafic(eval("[" + $("#valori").val() + "]"));

        });




        $("#scrie").click(function(){



        });
});

这是我的java脚本。这从一些书面值中得出一个图表。我怎样才能改变&#34; valori&#34;成为jsonObject.values?非常感谢

1 个答案:

答案 0 :(得分:0)

作为正式答案(详见问题评论),函数deseneazaGrafic接受一个简单的javascript数组。现在它eval {(1)}(或者......糟糕)textarea(#valori)的价值。你可以使用任何javascript数组。从JSON文件中获取值时,只需将其作为参数传递给deseneazaGrafic。例如:

var jsonObject = JSON.parse(myJSONString);  // the JSON object contains an array called "values"

deseneazaGrafic(jsonObject.values);

假设数组被正确解析,这应该可以很好地呈现图形。