JavaScript-Fehler bei der Verwendung von Highcharts
Ich habe ein seltsames problem, ich hoffe Ihr könnt mir helfen.
Habe ich Highcharts läuft auf einem dev-website -- ich verwende eine einfache form, um dem Benutzer zu ermöglichen, Daten einzugeben.
Auf der gleichen Seite, ein Highchart zeigt einmal Daten eingegeben werden.
Die Eingabemaske ist sehr einfache jQuery-basierte snippets, zB. Formular-Validierung, einen Zähler für die max Anzahl der Zeichen, usw.
Was passiert, ist, dass, wenn es chart-Daten in die Datenbank, das Diagramm stellt richtig, und die restlichen JS-snippets funktionieren wie erwartet, wen Sie versuchen, geben Sie neue Datenpunkte.
Aber, wenn es keine Daten in der Datenbank (also keine Highchart wird angezeigt), alle meine JS-snippets aufhören zu arbeiten.
Firebug-Konsole, ich bekomme diese Fehlermeldung, wenn es keine Daten zu einem Diagramm:
jb is null
function n(m,h){kc=ya(a.title,m);tc=ya...play:""});Aa.body.appendChild(Qb)}Tc=
highcharts.js (line 47)
In Chrome einen anderen Fehler anzeigt als
Uncaught TypeError: Cannot set property 'innerHTML' of null
d.d.extend._Deferred.f.resolveWith jquery.min.js:16
d.d.extend.ready jquery.min.js:16
d.c.addEventListener.A
Wieder, diese Fehler verschwinden, sobald ich die ersten Daten zeigen, und ein Diagramm gebildet wird.
Weiß jemand, was passiert ist und wie bekomme ich meine JS zu arbeiten, wenn ein Highchart ist leer?
Alle Hinweise werden sehr geschätzt. Danke!
- Was hat deine db zurück, wenn keine Daten vorhanden sind? Vielleicht eine einfache Prüfung der
if(WeHaveData){drawChart(WeHaveData);}
- die db leer ist und nicht wieder alles, was ich sehen kann (aber ich habe das JS-problem) -- und wenn ich Sie manuell fügen Sie einige Daten in die db, dann läuft alles in Ordnung-tun Sie denken, dies könnte eine Art von Konflikt?
- schwer zu sagen, ohne etwas von html oder code, die, wenn aus irgendeinem Grund, wenn die Datenquelle zurück
null
oder etwas anderes vielleicht highchart ist nicht richtig verhält. Wenn Sie könnten ein Beispiel dafür, wie die js sieht mit Daten mit und ohne möglicherweise in der Lage sein zu helfen mehr. Wenn ein jsfiddle.net könnte noch besser gemacht - vielen Dank - ich habe versucht, einige Geigen, aber Sie funktionieren... keine Fehler - es ist sehr schwierig, dieses Verhalten zu reproduzieren, so werde ich reißen alle JS und neu erstellen, um herauszufinden, wo es bricht
- Meine web-Vorlage war initialisieren 2 Instanzen von der gleichen jQuery plugin (fancybox), die ich zum öffnen eines modalen ausgelöst durch eine Taste. Einmal fixiert, dass ich die highcharts Fehler war Weg.
- Ich sah die exakte gleiche Fehler. Es stellte sich heraus, ich war die Einbettung der highcharts Skript zweimal, durch ein gieriger regex. Vielen Dank für dieses posting; es half mir das Problem viel schneller, als ich hätte!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für mich das problem war, dass ich nicht wie jQuery, bevor HighCharts.
Warf den Fehler:
Aber wenn ich jQuery erste ist es nicht.
Hatte ich dieses problem. Ich hatte zu umgeben, die highChart-Erstellung-code mit dem Dokument.bereit
OK, dieser Fehler tauchte wieder und das ist, weil mein Kommentar oben nicht wirklich lösen.
Hier ist der übeltäter: wenn Sie ein Modell erzeugt, dass die Daten für Diagramme passieren, gibt ein leeres array zurück (sagen, es ist ein neuer Benutzer, und Sie hat nicht Hinzugefügt noch keine Daten in die Datenbank), das leere array übergeben wird, an den controller-das wird dann passieren die leeren array an die view mit Highcharts.
Bei der übergabe eines leeren array an meiner Sicht mit Highcharts, Highcharts laufen würde, aber würde nicht ein element zu injizieren, die Grafik, denn ich hatte auch eine Bedingung, in der Ansicht, dass entfernt
#container
wenn es keine Daten.Ohne wo legen Sie die Tabelle, Highcharts gibt ein
innerHTML
Fehler, das kann oder kann nicht brechen Ihre restlichen javascript (mein Fall).Hier die Lösung nichts zu tun hatte, mit JS, die aber eigentlich mit dem setzen einer Bedingung in mein controller, das wäre in pseudo-code:
Tun dies, nicht nur ich, verhindert der Fehler für das gute, aber auch reduziert den Aufwand der Laufenden Highcharts, wenn keine Daten vorhanden sind.