21

私はうまくいく次のものを持っています:

$(document).ready(function() {

    get_data_for_chart();

    function get_data_for_chart() {
        $.ajax({
            url: 'get_data.aspx?rand=' + Math.random(),
            type: 'GET',
            dataType: 'json',
            error: function(xhr, status, error) {
                console.log(status);
                console.log(xhr.responseText);
            },
            success: function(results) { 
                var chart1;

                chart1 = new Highcharts.Chart( {
                    chart: {
                        renderTo: 'portlet_content_18',
                        defaultSeriesType: 'column'
                    }
                });

            }
        });
    }
});

HTMLが次のようになっている場合:

<div id="portlet_content_18">

portletユーザーは、画面上で必要なものを動的に選択できます。S / Heはportlet、比較のために、画面に同じものを複数回表示するように選択することもできます。

したがって、HTMLが最終的に次のようになる場合:

<div id="portlet_content_18">
<div id="portlet_content_18">

最初のグラフのみがdivグラフに入力され、2番目のグラフは空白のままになります。この問題を回避するにはどうすればよいですか?

4

2 に答える 2

18

はい、できます。ここで例を参照してください: http://jsfiddle.net/gh/get/jquery/1.7.1/highslide-software/highcharts.com/tree/master/samples/highcharts/chart/renderto-jquery/

基本的に、jQuery 要素を変数に割り当てます。

renderTo: $('.myclass')[0]

于 2012-06-12T12:40:45.683 に答える
14

井戸がすでに言ったように、複数の ID を持つことはできませんが、複数のクラスを持つことはできます。

私は次のことをしなければなりませんでした:

var $containers = $('.container'),
    chartConfig = {
        chart: {
            renderTo: null,
            defaultSeriesType: 'column'
        }
    };

$containers.each(function(i, e){
    chartConfig.chart.renderTo = e;
    new Highcharts.Chart(chartConfig);
});

また、実際には Chart オブジェクトを変数に割り当てる必要はありません - 少なくとも私はそうしたくありませんでした。

それが誰かに役立つことを願っています。

于 2012-12-13T17:33:06.977 に答える