我已经为我的圆环图的每个细分添加了一个点击处理程序并添加了以下代码:
$("#myChart").click(
function(evt){
var activePoints = myNewChart.getSegmentsAtEvent(evt);
var chartelementid = activePoints[0].label;
alert(chartelementid);
//$('.details div').css("display", "none");
//$('#' + chartelementid).show();
}
);
此工作正常,完成后应显示此细分的额外Div和详细信息。 不幸的是,我的标签不仅仅是单字,所以我正在努力创建同名的div ID ......
我的想法是在每个细分中添加一些额外的数据,如值,标签等,这样它就可以成为一个ID。但是,如果我只是将ID信息添加到Segment,它将不会作为变量存在。
添加数据类型:
var dataImprove = [
{
value: 30,
color:"#001155",
highlight: "#1c2f7c",
label: "KnowHow Erhalt / Transfer & Aufbau",
id:"test"
}
]
在哪里可以在chart.js中添加一个额外的数据类型,如我的ID上面所示,可以在DOM中访问?
亲切的问候Marco
答案 0 :(得分:1)
作为替代方法,将JSON字符串作为标签传递,然后拦截以进行渲染。例如:
var canvas = document.getElementById(id);
var d = canvas.getContext("2d");
var chart = new Chart(d).Pie(json, {
segmentStrokeWidth: 1,
tooltipTemplate: "<%=label%>", //default the label
customTooltips: function (tooltip) {
// Hide if no tooltip
if (!tooltip) {
return;
}
var tooltipObj = JSON.parse(tooltip.text);
// etc
答案 1 :(得分:0)
已经找到:在绘图之前在chart.js中的第999行和第1023行之间 - 我添加了行
id:ChartElements [0] .id,
所以具有名称ID的数据在DOM中可用。