0

我对 SVG 相当陌生,这是我第一次使用 javascript 尝试 svg。我正在尝试使用 Raphael SVG 创建一组图表。为了创建这些图表,我需要动态创建一个 SVG 元素。这里的问题是创建图表的 javascript 函数是从输入图表数据输入的 html 页面访问的。所以为了访问函数 (Charts();) 我没有添加 onload 函数。因此,Raphael svg 没有被创建,因为它需要一个创建它的 DOM 元素。我该如何解决这个问题?

Charts.js 如下:

var Charts = function Charts(config){

    var chart = this;


    chart.defaults = {
        .....
    };

    chart.Line = function(series, dataline){
    var newconfig = (config) ? mergeConfig(chart.defaults, config) : chart.defaults;
    return new KzSc(createSVG(newconfig, series, 'line'), newconfig, { series : series, name : 'line', dataline : dataline});
    }





    function createSVG(config, series, name){
        //create svg
    var chart_wrapper = document.getElementById(config.wrapperId);
    chart_wrapper.style.position = "relative";
    var SVGpaper = new Raphael(320, 200);
    chart_wrapper.appendChild(SVGpaper);
    var createSVGContainer = document.createElement("div");
    createSVGContainer.setAttribute('id',config.containerId);
    chart_wrapper.appendChild(createSVGContainer);

    }}

这会在 rapahel 脚本中给出错误“无法读取 'x' 的属性”。

html 部分包含调用该函数的脚本。

<html>
<head>
<script src="charts.js"></script>
<script>
    var = (describe data for charts)
    new Charts(....);
</script>
</head>
<body>
<div id="containerforsvg"></div>
</body>
</html>

另外,如果我添加一个 onload 或 ready 函数,即;

$(document).ready(function() {
var Charts = ...
)}

然后它给出了错误 Uncaught ReferenceError: Charts is not defined

4

0 回答 0