Как изменить размер графика Flot, когда его содержание отделения изменяет размер

Я использую плагин библиотеки построения графика Flot jQuery, и я не нашел хороший способ обработать изменение размеров графика, когда это содержит <div> размер изменений (например, из-за изменения размеров окна). При обработке onresize события я удостоверился что ширина и высота содержания <div>обновляются к корректному размеру и затем пытался назвать и setupGrid, и привлеките объект графика, но без эффекта. Я имел некоторый успех с подходом просто удаления и передобавления содержания <div> и переграфическое изображение графика в нем. Однако это, кажется, подвержено застреванию в большом количестве, изменяют размер циклов событий, если я должен добавить другой <div> элементы к документу одновременно (как для подсказок для графика), поскольку я предполагаю их, инициировали, может изменить размер событий также? Существует ли хороший способ обработать его, что я отсутствую?

(Я также использую ExplorerCanvas для IE, чтобы смочь использовать Flot, если это могло бы иметь какое-либо отношение к нему. Я еще действительно не попробовал ни в каких других браузерах),

6
задан John H 12 June 2011 в 05:07
поделиться

2 ответа

Я обнаружил, что просто привязка к событию изменения размера окна и вызов plot работает очень хорошо. Например, у меня данные и опции хранятся в переменных на странице. Затем я настраиваю это на $(document).ready():

$(window).resize(function() {$.plot($('#graph_div'), data, opts);});

17
ответ дан 8 December 2019 в 03:09
поделиться

Кажется, я нашел решение, хотя не совсем уверен, почему оно работает. Я все еще использую подход удаления и чтения содержащего

из документа и повторного построения графика в нем. Однако там, где раньше я делал

window.onresize = redrawFunc;  //redrawFunc removes and readds the containing div and replots

, казалось, что он может попасть в бесконечный цикл в зависимости от того, что redrawFunc сделал с документом.

Вместо этого я попытался использовать привязку изменения размера jQuery

$(window).resize = redrawFunc;

До сих пор, независимо от того, какие еще изменения я вносил в документ в redrawFunc, у меня еще не было проблем с тем, что этот подход застревает в цикле. Я просто не знаю почему.

0
ответ дан 8 December 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: