Html dom building (#6490)

Replaces #6179 and builds HTML legend strings using dom nodes rather than building up an HTML string directly.
This commit is contained in:
Ben McCann
2019-09-07 04:19:17 -07:00
committed by Evert Timberg
parent f68b8adaac
commit df9e2d00bd
4 changed files with 34 additions and 29 deletions

View File

@@ -78,17 +78,22 @@ defaults._set('global', {
},
legendCallback: function(chart) {
var text = [];
text.push('<ul class="' + chart.id + '-legend">');
for (var i = 0; i < chart.data.datasets.length; i++) {
text.push('<li><span style="background-color:' + chart.data.datasets[i].backgroundColor + '"></span>');
if (chart.data.datasets[i].label) {
text.push(chart.data.datasets[i].label);
var list = document.createElement('ul');
var datasets = chart.data.datasets;
var i, ilen, listItem, listItemSpan;
list.setAttribute('class', chart.id + '-legend');
for (i = 0, ilen = datasets.length; i < ilen; i++) {
listItem = list.appendChild(document.createElement('li'));
listItemSpan = listItem.appendChild(document.createElement('span'));
listItemSpan.style.backgroundColor = datasets[i].backgroundColor;
if (datasets[i].label) {
listItem.appendChild(document.createTextNode(datasets[i].label));
}
text.push('</li>');
}
text.push('</ul>');
return text.join('');
return list.outerHTML;
}
});