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>
关键看调用的时机,写在onload里面,是所有html载入了以后再执行的,你那么些不知道是写在什么地方,那个 $(id) html在那时候加载了么
Pie(lucy,data);
Doughnut(alice,data); 参数都不知道哪来的,肯定不行
//这样直接执行会报错,
Pie(lucy,data);
Doughnut(alice,data);
因为执行你这个代码的时候dom对象还没有生成,而且最好不用通过id来引用对象,使用document.getElementById,或者传递字符串id,函数里面document.getElementById来获取