Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JQuery对话框上打开现有的Highcharts图表_Javascript_Jquery_Charts_Highcharts - Fatal编程技术网

Javascript 在JQuery对话框上打开现有的Highcharts图表

Javascript 在JQuery对话框上打开现有的Highcharts图表,javascript,jquery,charts,highcharts,Javascript,Jquery,Charts,Highcharts,我正在开发一个使用Highcharts的JavaSpringWeb应用程序。我希望能够在页面上点击一个现有的图表,然后在一个大对话框中重新打开它,调整图表的大小,使其更大。 我当前的代码是一个javascript,它从模型中获取数据以在同一页面上生成多个图表: <script> $().ready(function () { for (var i = 0; i < parks.length; i++) { unit

我正在开发一个使用Highcharts的JavaSpringWeb应用程序。我希望能够在页面上点击一个现有的图表,然后在一个大对话框中重新打开它,调整图表的大小,使其更大。 我当前的代码是一个javascript,它从模型中获取数据以在同一页面上生成多个图表:

<script>
    $().ready(function () {
            for (var i = 0; i < parks.length; i++) {
                units = unitsMap[parks[i]];     //Units is an array with all units from park parks[i]
                html = "<table><tr>";
                for (var j = 0; j < units.length; j++) {
                    html = html + '<td>' +
                            '<div id="chart' + units[j] + '" class="demo-placeholder chart" style="height:300px;width:300px;"></div>' +
                            '</td>';
                }
                $("#chart" + parks[i]).html(html + "</tr></table>");
                for (var j = 0; j < units.length; j++) {
                    plot(units[j]);
                }
            }//END_FOR
    });
</script>
生成图表的代码如下所示:

<script type="text/javascript">
            //Function that plots the highcharts chart
            function plot(parkUnit, data) {
                $("#chart" + parkUnit).highcharts({
                    credits: {
                        enabled: false
                    },
                    chart: {
                        type: 'scatter',
                        zoomType: 'xy',
                        events: {
                            click: function () {
                                alert("aaaaaa");
                            }
                        }
                    },
/////// Other plot options //////
                    series: data
                });
            }//END_FUNCTION
我保存了一些选项,因为它们不相关。如您所见,我尝试使用chart.events.click,但我不知道这是否是解决方案。 您还可以看到,我的javascript正在for循环中生成几个图表,这些图表稍后将由plotunits[j]函数填充,我希望使用页面上现有的图表在一个大对话框窗口中打开,而不是生成一个新的图表,因为页面上已经有很多图表。 你认为有什么办法可以做到这一点吗


谢谢

也许你考虑使用解决方案,结合HealStand和HySLAST,它需要一个公司部署许可证……无论如何,谢谢。所以,在图表上捕获单击事件,然后初始化弹出窗口,然后在内部初始化新图表。我本想避免创建新图表,但在尝试了几个不同的选项但没有成功后,我最终应用了您的建议,@SebastianBochan。然而,我对这个解决方案不是很满意,因为一个用户可以轻松地在页面上拥有30个图表,我不想让它们都被复制……试着在jquery中使用clone函数,它允许跳过图表初始化。