Wie kann ich den Highcharts-Fehler Nr. 13 beheben?

Lesezeit: 5 Minuten

Benutzer-Avatar
Marion

Ich verwende Highchart, damit der Benutzer die Diagrammseite schließen und öffnen und das Diagramm neu zeichnen kann. In einigen Fällen gibt er mir diesen Fehler, wie kann ich ihn beheben. Danke. Hier ist mein Code

 function populateGraph(graph1data1,graph1data2,id,time,bottomText,tickinterval){
$(function () {
  $('#'+id).highcharts({
      chart: {
          type: 'line'
      },
      xAxis: {
        tickWidth: 0,
        categories: ['1,2,3,4']
      },
      yAxis: {
        gridLineColor: '#fff',
          title: {
              text: ''
          },
          labels: {
              formatter: function() {
                  return '';
              }
          }              
      },
      navigation: {
        buttonOptions: {
            enabled: false
        }
    },
      series: [{
          name: 'This ',
          data: [1,2,3,4],
          color: '#1e71ef'     
      }, {
          name: 'Last ',
          data: [5,6,7,8],
          color:'#dfe0e1'
      }]
  });
});
}
}




       function loadOnlineDashboardChannel(channel){
          $.ajax({
          type: "get",
          dataType: 'html',
          data: {},
          url: "/companies/2/online_dashboard_channel",
          success: function(data, status){ 
          var obj = JSON.parse(data);
          var template_data = { 
            measures_list:   
              obj.measures         
          };
          $(function() { 
        var tmplHTML_measures="{{#measures_list}} <div class="col-lg-11  col-lg-offset-1"><p class="indicator-title gray-bottom-border">{{name}}</br></p><div><p><span class="font30px">{{total}} </span> Total {{name}}<br><span class="green-text">{{increase}}%</span> from last <span class="metric_time"></span></p></div><div class="graph-header"><h3>{{this_interval}} </h3><p>New {{name}}</p><p class="percentage-graph green-text">{{percentag e}}%<p></div><div id={{graph_id}} class="graph"></div> </div>{{/measures_list}}";   
          Handlebars.render = function(tmpl, data){data = data || {};return                                                       Handlebars.compile(tmpl)(data);};  
      $("#template").empty().append(Handlebars.render(tmplHTML_measures,template_data) );
      var data_graph;
      for ( var i = 0; i < obj.measures.length; i++ ) {
        data_graph=obj.measures[i];
                      populateGraph(data_graph.this_interval_detail,data_graph.last_interval_detail,data_graph.graph_id,time,obj.bottom_graph_text,parseInt($('#timeframe-select').find(":selected").attr('interval')) );
      }              
     })


  },
  error: function(error) {

}
});

return this;
};

Ich verwende handlebar, also erstelle ich in diesem Teil in var tmplHTML_measures das div, in dem for rufe ich die Funktion auf, um das Diagramm zu zeichnen.

Danke, ich wiederhole, manchmal funktioniert es perfekt und manchmal schlägt es fehl, gibt mir den Fehler # 13

  • Hallo, ich ändere meinen Beitrag und füge etwas Code hinzu. Manchmal funktioniert es und manchmal nicht, die Element-ID ist in Ordnung, danke

    – Marion

    3. Februar 2014 um 20:23 Uhr


  • Wenn Highcharts diesen Fehler auslöst, dann der Jquery-Selektor $('#id') gibt nichts zurück. Meine Vermutung wäre gewesen, dass du deine nicht hattest .highcharts Anruf verpackt in a $(function () aber im obigen Code haben Sie das. Obwohl Sie ein Extra haben } am Ende gehört das nicht dazu. Sind Sie sicher, dass die Div-ID eindeutig ist? id="id" scheint eine schlechte Namenskonvention zu sein.

    – Markieren

    4. Februar 2014 um 0:39 Uhr


  • Ja, meine ID ist eindeutig, ich erstelle sie dynamisch mit einem eindeutigen Namen, dafür verwende ich die Lenkstange

    – Marion

    4. Februar 2014 um 13:47 Uhr

  • Sie müssen also auch diesen Namen in Highcharts haben, die ID von div muss mit dem Namen des Selektors übereinstimmen, den Sie zum Erstellen von Highcharts verwenden

    – Sebastian Bochan

    4. Februar 2014 um 14:03 Uhr


Ich bin auf denselben Fehler gestoßen und habe erfahren, dass Fehler Nr. 13 auftritt, wenn HighCharts.js versucht, auf ein Element zuzugreifen, das nicht im DOM vorhanden ist.

Wie habe ich es behoben? Ich habe dafür gesorgt, dass die HightCharts-Methode erst aufgerufen wird, nachdem mein Zielelement im DOM erstellt wurde. Bingo!!!! Alles hat gut funktioniert.

  • Bei Verwendung von Ionic bedeutet dies, dass Sie das Objekt nicht im Konstruktor initialisieren sollten. Sie müssen es in ionViewDidLoad() tun

    – Schlagschmied

    18. März 2018 um 10:35 Uhr

  • Mein Problem war die Verwendung eines jQuery-Tags, um auf ein Element zu verweisen. '#mainChartDiv' statt nur 'mainChartDiv'. Letzteres funktionierte einwandfrei.

    – elPastor

    3. September 2018 um 18:00 Uhr


Benutzer-Avatar
Gabriela Vaca Guzman G.

Ich hatte das gleiche Problem und habe es mit dem richtigen Container behoben:

In meinem Fall habe ich folgendes verwendet:

// Use Meteor.defer() to create chart after DOM is ready:
Meteor.defer(function() {
  // Create standard Highcharts chart with options:
  Highcharts.chart('Charts', {
    chart: {
      renderTo: 'container',
        type: 'column',
        options3d: {
            enabled: true,
            alpha: 15,
            beta: 15,
            depth: 50,
            viewDistance: 25
        }
    },....
  }.....
}

Template.body.helpers({
  createChart: function () {...}

und in der HTML-Datei:

<div id='Charts'>
    {{createChart}}
</div>

Ich habe die Lösung von Highcharts gefunden: http://forum.highcharts.com/viewtopic.php?f=9&t=15610

Grüße.

  • Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier einzufügen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verlinkte Seite ändert. – Aus Bewertung

    – Tarzanbappa

    14. Juni 2016 um 2:15 Uhr

  • Vielen Dank für den Rat. 🙂 Aktualisiere die Antwort

    – Gabriela Vaca Guzman G.

    13. Juli 2016 um 15:04 Uhr

  • Das ist es, was wir innerhalb von wdiv id=”” oder einem Balkendiagramm oder Liniendiagramm usw. angeben müssen

    – famas23

    21. Oktober 2018 um 20:36 Uhr

Benutzer-Avatar
hutchonoide

Kategorien müssen eine Sammlung sein, es war so:

categories: xaxis

Ändern Sie es so:

categories: ['xaxis']

Einige der Datenfelder müssen wie folgt in einfache Anführungszeichen gesetzt werden:

data: 'blue'

Hier ist eine Geige ohne Fehler für Sie:

http://jsfiddle.net/MVcBe/

Viel Glück mit dem Rest. 🙂

ps Manchmal finde ich es einfacher, eine funktionierende Geige von der Highcharts-Site zu bearbeiten und an das anzupassen, was Sie brauchen. Wie dieser:

http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-basic/

  • Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier einzufügen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verlinkte Seite ändert. – Aus Bewertung

    – Tarzanbappa

    14. Juni 2016 um 2:15 Uhr

  • Vielen Dank für den Rat. 🙂 Aktualisiere die Antwort

    – Gabriela Vaca Guzman G.

    13. Juli 2016 um 15:04 Uhr

  • Das ist es, was wir innerhalb von wdiv id=”” oder einem Balkendiagramm oder Liniendiagramm usw. angeben müssen

    – famas23

    21. Oktober 2018 um 20:36 Uhr

Benutzer-Avatar
Lecorbu

Stellen Sie außerdem sicher, dass „highcharts-more.js“ in Ihrem HTML deklariert ist.

<script src="https://code.highcharts.com/highcharts-more.js"></script>

1005790cookie-checkWie kann ich den Highcharts-Fehler Nr. 13 beheben?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy