2016-04-30 9 views
0

die folgenden Daten-Set Stellen Sie sich vor:

{"FakeEconomy":{ 
"2016-04-05":5651694, 
"2016-04-06":5513759, 
"2016-04-07":5410169, 
"2016-04-08":5094142, 
"2016-04-09":4768829, 
"2016-04-10":5101458, 
"2016-04-11":5776419, 
"2016-04-12":5692041, 
"2016-04-13":5568383, 
"2016-04-14":5555027, 
"2016-04-15":5116844, 
"2016-04-16":4653882, 
"2016-04-17":5112466, 
"2016-04-18":5764588 
}} 

Wenn ich es durch die jQuery jede Funktion übergeben, es funktioniert gut, aber dann wirft es ein zufälliges:

Uncaught TypeError: Cannot read 'visits' of undefined

das folgende ist die jQuery-Code:

console.log(dataset['visits']); // Prints the data above 
$.each(dataset['visits'], function(index,value) { 
    pageName = index; 
    $.each(dataset['visits'][index], function(index,value) { 
     timeline.push(index); 
     visits_data.push(parseInt(value)); 
     console.log(timeline); 
    }) 
}); 

Was den Fehler verursacht?

+1

Fehler kommt nicht von diesem Code. Es kommt von woanders her. Verwenden Sie pause für die Ausnahme, um dies zu erkennen. –

+1

@RajaprabhuAravindasamy Du bist ein Genie. Herausgefunden, dass der Grund, warum das Programm den Fehler verursacht, war, weil ich die jQuery ready-Funktion in einer js-Datei im Vergleich zur HTML-Datei platziert habe, und weil die js-Datei schneller als die HTML-Datei ausgeführt wird, werden die Bausteine ​​ – Adib

+0

funktioniert einwandfrei: https: // jsfiddle.net/rayon_1990/gvzu13un/ – Rayon

Antwort

0

Der Grund, warum das Programm einen Fehler verursacht, liegt darin, dass ich die jQuery ready-Funktion, die darin die oben beschriebene Funktion enthält, in die JavaScript-Datei im Gegensatz zur HTML-Datei gestellt habe.

Im Wesentlichen diese:

$(document).ready(function(){ 
    var collected_results = graph_data(dataset); // Has the each function 
    var visitsChart = new Chart(collected_results[0], collected_results[1]); 
    var devicesChart = new Chart(collected_results[2], collected_results[3]); 
    var osChart = new Chart(collected_results[4], collected_results[5]); 
}) 

war in der JavaScript-Datei und die JavaScript-Datei lädt schneller als die HTML-Datei.

Da die JS-Datei schneller geladen wird als die HTML-Datei, wird der Fehler ausgelöst, da die Objekte nicht gelesen werden können.