我按照以下示例使用以下代码使Google图表具有响应性:
$(document).ready( function () {
//Make Chart(s) Responsive
$(window).resize(function(){
drawVisualization();
});
这在我的html原型中很好用,但是我现在正在使用PHP生成图表。例如,我可能必须生成n个图表,以便遍历PHP中的一组数据以生成图表将驻留的DIV,JSON数据等等。
我的DIV生成为唯一,例如:
<div id="visualization_**identifier**" style="height:200px;">
然后我为每个图表创建一个函数来处理render.drawing,如果需要,我可以对其进行唯一的命名:
function drawVisualization_**identifier**()
这一切正常,但是jQuery代码要求我依次调用每个drawVisualization_**identifier**()
来刷新图表,有没有办法动态创建列表并刷新它们?
我假设我可以将一个类添加到我的vizualization div中,并使用典型的jQuery代码查询它们(尽管我不确定如何做到)-如果可以做到,我可以在调用每个{{1 }}函数执行刷新?
某种程度上的东西(非常粗略!)
drawVisualization_**identifier**()
任何帮助将不胜感激,尽管我感觉我正在使用jQuery和图表,但这使我头疼。似乎很奇怪,就好像Google Charts一样出色,似乎没有“调整大小时重新绘制”的功能。
答案 0 :(得分:0)
似乎在放弃并发布我的问题后,我倾向于有一个好主意。我意识到在生成PHP图表的过程中,我还可以创建(在PHP中)一个javaScript函数来进行刷新,然后从jQuery调整大小中调用该函数。下面的PHP遵循创建我的图表/ divs /回调函数的循环,并且看起来运行良好。
#Generate Chart Refresh Function to call on Window Resize
print('<script>');
print('function drawVisualization() {');
foreach($entity as $chartid){
print(' drawVisualization_'.$chartid["uniqueIDperChart"].'();');
}
print('};');
print('</script>');
因此,如果我有四个图表,则该函数将具有四个drawVizualization_uniqueID();调用,然后从绑定到窗口调整大小的jQuery事件中调用函数drawVisualization()。