2012-08-03 61 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),你必须明确地设置图表的宽度和高度。