所以我正在构建一个使用各种jQuery UI小部件的web应用程序。特别是,我正在使用手风琴小部件。我有jQuery代码,它像这样设置手风琴:
$('#graph').accordion({autoHeight:false, collapsible:true});
很明显,里面有一张图。对于图形,我使用谷歌注释时间线可视化。现在,如果我将手风琴选项active
设置为false,或者如果手风琴被折叠,每当我尝试绘制图形时,它都会"告诉"我它要查找的元素不存在。这是因为当手风琴折叠时,包含图形的div
在内部变得"隐藏"吗?如果是,我该如何解决?
这一点之所以重要,是因为用户在使用其他元素时可能会折叠手风琴。该图旨在实时更新。但是,如果它甚至找不到绘制图形所需的元素,它就不会更新。
如果您可以使用jsfiddle来说明/重现这个问题,那将非常有用。
从您的问题来看,您似乎定义了一个id为'graph'
的元素,并将其作为一个jquery ui手风琴$('#graph').accordion({..})
。您试图将图表插入到哪个元素?假设在您尝试呈现图表之前,您计划在其中放置图表的div已经存在,那么您至少不应该在这方面出现错误。
我要补充的第二个相关注意事项是,对于带注释的时间序列图(docs),您必须明确设置图表的宽度和高度。
我确实发现手风琴确实将任何包含的div的宽度和高度设置为0。因此,当我试图通过AnnotatedTimeline访问它时,它找不到有效的宽度或高度,并抛出错误。因此,我的解决方案是简单地添加一个更改回调函数,在选择图形时重新绘制图形,并重置更新间隔。当它被取消选择时,我只需清除我的更新间隔。