javascript 引用 参数的问题
var data =
    [
    {
        value: 23,
        color:"orange"
    },
    {
        value : 20,
        color : "lawngreen"
    },
    {
        value : 20,
        color : "#666666"
    },
    {
        value : 50,
        color : "rgb(255,130,0)"
    }
]
 function Pie(id,data){
    var can = $(id).get(0).getContext("2d");
    var myNewChart = new Chart(can);
    new Chart(can).Pie(data,2);

}
function Doughnut(id,data){
    var can = $(id).get(0).getContext("2d");
    var myNewChart = new Chart(can);
    new Chart(can).Doughnut(data,2);
}
//这样直接执行会报错,
Pie(lucy,data); 
Doughnut(alice,data);
//但是在HTML中又是可以执行的,求解
<body onload="Pie(lucy,data); Doughnut(alice,data)">
<canvas id="alice" width="400" height="400"></canvas>
        <canvas id="lucy" width="400" height="400"></canvas>

3个回答

关键看调用的时机,写在onload里面,是所有html载入了以后再执行的,你那么些不知道是写在什么地方,那个 $(id) html在那时候加载了么

caozhy
回答这么多问题就耍赖把我的积分一笔勾销了 回复当作看不见: 要放在html后面,因为它是立刻执行的
大约 4 年之前 回复
qq_29594393
当作看不见 Pie(lucy,data);是放在JavaScript中最后面执行的,JavaScript是放在HTML的前面
大约 4 年之前 回复

//这样直接执行会报错,
Pie(lucy,data);
Doughnut(alice,data);

因为执行你这个代码的时候dom对象还没有生成,而且最好不用通过id来引用对象,使用document.getElementById,或者传递字符串id,函数里面document.getElementById来获取

Pie(lucy,data);
Doughnut(alice,data); 参数都不知道哪来的,肯定不行

qq_29594393
当作看不见 函数是没有问题的,问题是为什么在<body onload>可以执行,但是放在JavaScript中执行不了
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐