海图不';无法在jquery对话框中显示
我试图在jQuery对话框中显示图表 我确实这么做了,但只是第一次。当我重新加载页面并显示对话框时,我只得到一个空白。这是我的密码:海图不';无法在jquery对话框中显示,jquery,dialog,highcharts,Jquery,Dialog,Highcharts,我试图在jQuery对话框中显示图表 我确实这么做了,但只是第一次。当我重新加载页面并显示对话框时,我只得到一个空白。这是我的密码: function () { var dialog = $('#div_id').dialog({ 'autoOpen': false, 'closeOnEscape':true, 'buttons':[{ 'text':'OK', 'click': function() {
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()方法在调用图表构造函数之前完成。这些假设正确吗?