2015-06-10 62 views
1

我有多個dygraphs圖,我想在可摺疊的jQuery小部件中進行分組,因此只能顯示一些圖組。可悲的是,這隻適用於如果可摺疊的div在開始時展開,如果我開始摺疊,圖形將不會在展開後繪製。Dygraph在摺疊的jQuery移動可摺疊小部件上未顯示

雖然不是一個真正的解決方案,但我可以從所有擴展的所有元素開始。但是,如果摺疊某些圖形和切換頁面,則會出現同樣的問題。

這是一個jsFiddle它顯示的問題集data-collapsed="false"和圖形將繪製。

回答

2

當小部件展開時,您可以嘗試在所有圖表上調用g.resize()g.updateOptions()。這些應該是no-ops,但是它們的效果是強制dygraphs重新計算其容器的大小<div>,該容器由於擴展的小部件而發生了變化。

據我所知,當DOM元素變得可見或以窗口大小以外的方式調整大小時,無法通過JavaScript進行分析。這也會影響其他JS庫。

+1

這是一個更新的小提琴,在collapsibleexpand上調用g.resize():它似乎工作。 – ezanker

+0

謝謝,這解釋了爲什麼我有時看不到圖形,直到我調整瀏覽器窗口大小。你的解決方案的工作,感覺有點hacky添加另一個事件監聽器,但似乎這是如何隱藏在JavaScript的作品。值得一提的是,'g.resize()'和'g.updateOptions()'的行爲方式不同:後者僅在擴展時創建圖的情況下才起作用。太糟糕了,因爲現在我不得不添加一個調整大小,否則我可以調用我已經存在的更新函數。 – lakerz