Я использую плагин библиотеки построения графика Flot jQuery, и я не нашел хороший способ обработать изменение размеров графика, когда это содержит <div>
размер изменений (например, из-за изменения размеров окна). При обработке onresize события я удостоверился что ширина и высота содержания <div>
обновляются к корректному размеру и затем пытался назвать и setupGrid, и привлеките объект графика, но без эффекта. Я имел некоторый успех с подходом просто удаления и передобавления содержания <div>
и переграфическое изображение графика в нем. Однако это, кажется, подвержено застреванию в большом количестве, изменяют размер циклов событий, если я должен добавить другой <div>
элементы к документу одновременно (как для подсказок для графика), поскольку я предполагаю их, инициировали, может изменить размер событий также? Существует ли хороший способ обработать его, что я отсутствую?
(Я также использую ExplorerCanvas для IE, чтобы смочь использовать Flot, если это могло бы иметь какое-либо отношение к нему. Я еще действительно не попробовал ни в каких других браузерах),
Я обнаружил, что просто привязка к событию изменения размера окна и вызов plot работает очень хорошо. Например, у меня данные и опции хранятся в переменных на странице. Затем я настраиваю это на $(document).ready():
$(window).resize(function() {$.plot($('#graph_div'), data, opts);});
Кажется, я нашел решение, хотя не совсем уверен, почему оно работает. Я все еще использую подход удаления и чтения содержащего , казалось, что он может попасть в бесконечный цикл в зависимости от того, что redrawFunc сделал с документом. Вместо этого я попытался использовать привязку изменения размера jQuery До сих пор, независимо от того, какие еще изменения я вносил в документ в redrawFunc, у меня еще не было проблем с тем, что этот подход застревает в цикле. Я просто не знаю почему.
window.onresize = redrawFunc; //redrawFunc removes and readds the containing div and replots
$(window).resize = redrawFunc;