0

使用 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;
    }

我正在 Google 中进行测试并使用开发者工具进行调试。如果我在 if 语句中设置断点并调试应用程序,barChart 将更新,单击的列变为红色,而所有其他列均为绿色(根据需要)。如果我没有调试,barChart 会更新,但所有列都是绿色的(最初图表是用除一个红色列之外的所有绿色列创建的)。

reverseColors 函数在调试时以正确的格式返回数据并使用正确的填充,当不在控制台中调试时,我有 1 个红色,其余项目为绿色,正如预期的那样。但我的图表只有绿色列。

我在搞砸什么?

道场初学者!

编辑:在 Chrome 中不工作,在 Firefox 中工作一次,在 IE8 中工作正常。

4

1 回答 1

0

该图表定义了一个突出显示。删除突出显示解决了这个问题。

于 2013-04-15T18:04:20.643 回答