2012-08-03 55 views
0

所以我建立一個web應用程序,使得使用不同的jQuery UI部件。特別是我正在使用手風琴小部件。我有jQuery的代碼,建立了手風琴像這樣:與谷歌有趣怪癖AnnotatedTimeline

$('#graph').accordion({autoHeight:false, collapsible:true}); 

善有善報中存在,很明顯,一個圖形。對於圖表,我使用Google AnnotatedTimeline可視化。現在,如果我的手風琴選項active設置爲false,或者如果手風琴摺疊時,每當我試圖繪製圖形,它告訴我它尋找的元素不存在。這是因爲內部包含圖的div在手風琴摺疊時變成'隱藏'了嗎?如果是這樣,我該如何解決這個問題?

的原因,這是很重要的是,用戶可能會與其他元素的工作,而手風琴倒塌。該圖旨在實時更新。但是如果它甚至找不到需要繪製圖形的元素,它將不會被更新。

+0

所以你想,當它被摺疊到繪製圖形?這並沒有什麼意義。您應該在可見時繪製圖表。它在隱藏時無法繪製圖形。誰可以看到它? – c0deNinja 2012-08-03 17:40:03

+0

編輯該帖子。 – Perley 2012-08-03 17:40:28

+0

是的,我猜這是有道理的。但是,發生了什麼?我並不是jQuery UI方面的專家,但如果是這種情況,那麼這是一個簡單的解決方案。我只是好奇,如果這是它在手風琴崩潰時不能繪製圖表的原因。 – Perley 2012-08-03 17:42:12

回答

0

我確實知道手風琴確實將任何包含的div的寬度和高度設置爲0.因此,當我嘗試通過AnnotatedTimeline訪問它時,無法找到有效的寬度或高度,並且拋出和錯誤。所以我的解決方案是簡單地添加一個改變回調函數來重新繪製圖形,當它被選中並重置我的更新間隔。當它被取消選擇時,我只需清除更新間隔。

0

,如果你能說明/使用jsfiddle重現這個問題,將是有益的。

從看你的問題,你似乎定義了一個編號爲'graph'的元素,並使其成爲一個jQuery UI手風琴$('#graph').accordion({..})。你試圖插入圖表的元素是什麼?假設在你試圖呈現圖表之前你打算讓圖表存在,那麼你應該至少不會在這方面得到錯誤。

的第二個相關的說明我想補充的是,一個被註解的時間序列圖(docs),你必須明確地設置圖表的寬度和高度。