jqPlot .replot () не обновляет серию - PullRequest
1 голос
/ 12 октября 2011

Эта проблема настолько обманчиво проста, что я не могу понять, в чем проблема.

У меня есть линейная диаграмма jqPlot ("plot1") с одной серией и легендой. Я связал событие .click якоря на своей странице, чтобы вызвать следующую функцию:

function changeSeriesColor() {
    plot1.series[0].color = "#33ff66";
    plot1.replot();
}

Событие запускается и вызывает функцию без ошибок. Цвет серии на LEGEND обновляется до нового цвета, но цвет LINE остается неизменным. В документации по jqPlot не так много можно сказать о подобных вещах (хотелось бы, чтобы было больше и более разнообразных примеров), и я не могу найти что-либо в stackoverflow или в другом месте, где бы это решалось.

Это поведение согласуется с Chrome 12.0.742.112, Firefox 6.0.2 и IE 9.0.8112.16421, поэтому я почти уверен, что это не какая-то странная специфическая для браузера особенность.

Я в растерянности от этого. Помощь?!

1 Ответ

1 голос
/ 24 апреля 2012

Я опоздал, но для любых других, кто сталкивается с этой проблемой, это может быть полезно? (от https://bitbucket.org/cleonello/jqplot/issue/358/replot-ignoring-seriescolor)

К сожалению, изменение параметров графика после инициализации графика не имеет эффект для перерисовки / перерисовки. Это не ошибка эти варианты используются только при инициализации установить свойства на средства визуализации. изменения они после инициализации сюжета не действуют.

Что вы можете сделать, это изменить соответствующие свойства на рендерерах. В вашем случае это будет:

  this._jqChart.series[0].renderer.shapeRenderer.strokeStyle = colors[0];
  this._jqChart.series[0].markerRenderer.shapeRenderer.strokeStyle = colors[0];  // if markers not filled.
  this._jqChart.series[0].markerRenderer.shapeRenderer.fillStyle = colors[0];
...