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を持つ要素が複数あります。次に、2回目の呼び出しで、ダイアログは取得して表示する要素を認識しないため、開くだけです。修正は、元の要素を除くすべての要素をDOMから削除することです。私のコードは次のようになります:

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

IE7との互換性のためにそのような寄生要素を削除します(多分すべてのIE7 +)

于 2012-07-12T09:40:42.933 に答える