Javascript 手风琴中的jqPlot图
我想在jQuery手风琴中绘制一个图形,但它会导致图形被切碎并显示比例。有人对此进行了修复吗?正如jqPlot的页面上所解释的,jqPlot在绘制图表时需要知道图表的大小,如果图表被手风琴或标签隐藏,它就无法做到这一点。解决方案是以另一种方式指定图表的尺寸,或者在手风琴展开时调用Javascript 手风琴中的jqPlot图,javascript,jqplot,Javascript,Jqplot,我想在jQuery手风琴中绘制一个图形,但它会导致图形被切碎并显示比例。有人对此进行了修复吗?正如jqPlot的页面上所解释的,jqPlot在绘制图表时需要知道图表的大小,如果图表被手风琴或标签隐藏,它就无法做到这一点。解决方案是以另一种方式指定图表的尺寸,或者在手风琴展开时调用replot。有关完整的详细信息和示例代码,请参见。手风琴中的所有内容在展开之前都是隐藏的,这意味着它是无量纲的。您需要等待显示手风琴图表所包含的DOM部分,然后绘制图形。如果查看jqPlot最新版本中包含的ui.htm
replot
。有关完整的详细信息和示例代码,请参见。手风琴中的所有内容在展开之前都是隐藏的,这意味着它是无量纲的。您需要等待显示手风琴图表所包含的DOM部分,然后绘制图形。如果查看jqPlot最新版本中包含的ui.html示例,您将看到:
在这里,绘图是在名为chart1的div处创建的,该div位于隐藏的jQuery UI选项卡中:
plot1 = $.jqplot('chart1', [l1, l2, l3], {
title: "I was hidden",
lengend:{show:true},
series:[{},{yaxis:'y2axis'}, {yaxis:'y3axis'}],
cursor:{show:true, zoom:true},
axesDefaults:{useSeriesColor:true}
});
然后使用jQueryUI选项卡触发的“tabsshow”事件注册事件处理程序。在您的情况下,您需要为jQuery UI Accordion小部件在完成更改Accordion的状态后触发的“accordionchange”事件注册一个处理程序。下面是如何绑定到上述代码示例的选项卡的“tabsshow”事件:
$('#tabs').bind('tabsshow', function(event, ui) {
if (ui.index == 1 && plot1._drawCount == 0) {
plot1.replot();
}
else if (ui.index == 2 && plot2._drawCount == 0) {
plot2.replot();
}
});
在同一个ui.html文件中还有一个使用手风琴的工作示例。您可以在bitbucket的最新版本中找到以下示例:
另外,请确保不要在同一个div上实例化多个jqPlot对象,否则会使绘图彼此重叠,并使浏览器过载。隐藏元素(如选项卡或手风琴元素)没有大小,因此您可能需要使用jqPlot文档中提到的技术,即:
ui.index=#
对我不起作用。在jquery站点上,他们使用ui.index==#
。同样,这对我来说不起作用,所以我使用了ui.newHeader.text()=“JQPlot”
(我使用的是jquery 1.9.1、jui 1.10.3和JQPlot 1.0.8)希望这些信息能帮助一些只包含链接的答案。请在此总结内容(不要复制/粘贴),以便答案能够独立存在。如果你不这样做,你的答案就有被删除的风险,特别是如果链接曾经消失。