jqPlot .replot() не обновляет серию

#jquery #charts #jqplot

#jquery #Диаграммы #jqplot

Вопрос:

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

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

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

Событие срабатывает и вызывает функцию без ошибок. Цвет ряда в ЛЕГЕНДЕ обновляется до нового цвета, но цвет СТРОКИ остается неизменным. В документах jqPlot мало что можно сказать о подобных вещах (хотелось бы, чтобы было больше и более разнообразных примеров), и я не могу найти что-либо в stackoverflow или где-либо еще, что касается этого.

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

Я в недоумении по этому поводу. Помогите ?!

Ответ №1:

Я опаздываю, но для любых других, кто сталкивается с этой проблемой, это может быть полезно? (из 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];
  

Комментарии:

1. Полностью пропустил, что на этот вопрос был дан ответ. Спасибо за взвешивание.