使用dojo,我用ColumnsPlot创建了一个图表。图表按照我想要的方式创建和显示。为了处理列上的单击并更改单击列的颜色,我有以下代码:
var handler = barChart.connectToPlot("default", function (event) {
if (event.type == "onclick") {
var currentSeriesData = event.run.data;
barChart.updateSeries("Yearly Offense Count", reverseColors(currentSeriesData, event.index));
barChart.render();
}
});reverseColors是:
reverseColors = function (data, index) {
var tempData = [];
for (var i = 0; i < data.length; i++) {
tempData.push(data[i]);
if (i == index) {
tempData[i].fill = "red";
} else {
tempData[i].fill = "green";
}
}
console.log(i + " - " + tempData[i].fill);
return tempData;
}我正在谷歌上测试,并使用开发人员的工具进行调试。如果我在If语句中设置了一个断点并调试应用程序,则barChart将更新,单击的列将变为红色,而所有其他列均为绿色(根据需要)。如果我没有在调试,barChart会被更新,但是所有的列都是绿色的(最初创建的图表中除了一个红色的列之外,所有的列都是绿色的)。
reverseColors函数在调试时以正确的格式和正确的填充返回数据,当不在控制台中调试时,我有1个红色,其余的项是绿色的,正如预期的那样。但是我的图表只有绿色的列。
我搞砸了什么?
道场初学者!
编辑:不适用于Chrome,适用于火狐,适用于IE8。
发布于 2013-04-16 02:04:21
该图表定义了一个高亮显示。删除高亮显示解决了问题。
https://stackoverflow.com/questions/15959675
复制相似问题