3

我正在尝试在 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);
    }
}

我希望有人能帮忙。

4

1 回答 1

2

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

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

我删除了那些与 IE7 兼容的寄生虫元素(也许所有 IE7+)

于 2012-07-12T09:40:42.933 回答