我添加了一个功能" Pie_onClickLegend_HighlightOnSlice(event,legendItem)"用于选项>传说> onClick,我也想将它与我的自定义图例一起使用。但我不知道如何将legendItem传递到我的图表之外。
在顶部:我的自定义图例(onClick无效)
on buttom:" original"图例(onClick函数正常工作)
我认为问题在于我调用我的功能" Pie_onClickLegend_HighlightOnSlice"
document.getElementById('js-legend').innerHTML =
chartTurn.generateLegend().replace(/\"0-legend"/g, 'legend');
$("#js-legend > ul > li").on("click", function(e) {
var index = $(this).index();
Pie_onClickLegend_HighlightOnSlice(e.originalEvent, chartTurn.legend.legendItems[index]);
ci.update();
你有什么建议吗?我认为问题在于
chartTurn.legend.legendItems[index]
但我不知道该使用什么。
答案 0 :(得分:0)
根据海狸的建议,我找到了解决方案。我不得不改变对我的功能的调用:
document.getElementById('js-legend').innerHTML = chartTurn.generateLegend().replace(/\"0-legend"/g, 'legend');
$("#js-legend > ul > li").on("click", function(event) {
event = event || window.event;
var target = event.target || event.srcElement;
while (target.nodeName !== 'LI') {
target = target.parentElement;
}
var parent = target.parentElement;
var chart = Chart.instances[0];
var index = Array.prototype.slice.call(parent.children).indexOf(target);
console.log(chart.legend.legendItems[index]);
Pie_onClickLegend_HighlightOnSlice(event.originalEvent, chart.legend.legendItems[index],chart);
})
因为我使用过" this.chart"在" Pie_onClickLegend_HighlightOnSlice",现在我还要传递我想要使用的chartInstance:
function Pie_onClickLegend_HighlightOnSlice(event, legendItem, chartInstance) {
if (chartInstance === undefined){
chartInstance = this.chart;
}
[...]
}