Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
海图不';无法在jquery对话框中显示_Jquery_Dialog_Highcharts - Fatal编程技术网

海图不';无法在jquery对话框中显示

海图不';无法在jquery对话框中显示,jquery,dialog,highcharts,Jquery,Dialog,Highcharts,我试图在jQuery对话框中显示图表 我确实这么做了,但只是第一次。当我重新加载页面并显示对话框时,我只得到一个空白。这是我的密码: function () { var dialog = $('#div_id').dialog({ 'autoOpen': false, 'closeOnEscape':true, 'buttons':[{ 'text':'OK', 'click': function() {

我试图在jQuery对话框中显示图表

我确实这么做了,但只是第一次。当我重新加载页面并显示对话框时,我只得到一个空白。这是我的密码:

function () {
    var dialog = $('#div_id').dialog({
        'autoOpen': false,
        'closeOnEscape':true, 
        'buttons':[{ 
        'text':'OK',
        'click': function() { $(this).dialog('close'); }
        }],
        'modal':true
    });
    $("#show_dialog_button").click(function () {
            dialog.dialog('open');
            var chart = Highcharts.Chart({/*some configs here*/});
            var jqChart = $("#"+chart.options.chart.renderTo);
        HighchartsHelper.autoResizeChart(jqChart,chart);
    }
}

我希望有人能帮忙。

好的,我已经找到问题所在。创建对话框时,它复制给定元素并将其放入body标记中。因此,有多个元素具有相同的id。然后在第二次调用时,对话框不知道要获取和显示哪个元素,所以它只是打开。修复方法是从DOM中删除除原始元素之外的所有元素。我的代码如下所示:

$("[id='dialog_element']").not("#dialog_parent>#dialog_element").remove();

为了与IE7兼容,我删除了这些寄生元素(可能是所有IE7+)

您确定您的对话框在呈现图表之前已经创建了吗?在打开对话框并查看它是否被渲染后,您能发出一些警报吗?我在.dialog('open')函数调用之后立即创建图表,正如我在上面的代码片段中所示。我假设在调用Highcharts.chart()方法时呈现图表,并且.dialog()方法在调用图表构造函数之前完成。这些假设正确吗?