21 Stimmen

Rendering HighCharts zu Klasse anstelle von id?

Ich habe das Folgende, das gut funktioniert:

$(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'
                    }
                });

            }
        });
    }
});

Der HTML-Code sieht in etwa so aus:

<div id="portlet_content_18">

Der Benutzer kann dynamisch auswählen, welche portlet er/sie auf dem Bildschirm haben möchte. Er/sie kann auch auswählen, ob er/sie die gleichen portlet zu Vergleichszwecken mehr als einmal auf dem Bildschirm zu sehen.

Wenn der HTML-Code also am Ende zu:

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

Nur die erste div wird mit dem Diagramm gefüllt, und das zweite bleibt leer. Wie kann ich dieses Problem umgehen?

18voto

Moin Zaman Punkte 24899

Ja, das können Sie. Siehe ihr Beispiel hier: http://jsfiddle.net/gh/get/jquery/1.7.1/highslide-software/highcharts.com/tree/master/samples/highcharts/chart/renderto-jquery/

Grundsätzlich weisen Sie ein jQuery-Element einer Variablen zu:

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

15voto

Cesar Castro Punkte 1842

Wie schon Ido sagte Sie können nicht mehrere IDs haben, aber Sie können mehrere Klassen haben.

Ich musste Folgendes tun:

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

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

Außerdem müssen Sie das Chart-Objekt nicht unbedingt einer Variablen zuweisen - zumindest wollte ich das nicht.

Ich hoffe, es hilft jemandem.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X