0
I d3.js bin mit Datenvisualisierung zu machen, aber ich bin kein Programmierer JavaScript, damit ich so etwas wie dieJavaScript Uncaught Referenz bei der Verwendung von setTimeout()
for(var i =0;i<6;i++){
setTimeout(function(){
var in = data[0][i];
slate(" + margin.left + "," + margin.top + ")");
var svg = d3.select("#clustering").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
svg.append("rect")
.attr("width", width)
.attr("height", height);
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
svg.append("g")
.attr("class", "y axis")
.call(yAxis);
var color = d3.scale.category10();
refreshGraph();
},1000);
}
/*
* function displaying data on svg
* called every time data change
*/
var refreshGraph = function(){
// removing all previously drawn dots
svg.selectAll(".dot")
.data(instruments)
.exit()
.remove();
}
folgenden schrieb Aber ich habe diesen Fehler Uncaught Reference Error: svg is not defined
Ich weiß, Die Funktion refreshGraph
kann die var svg
nicht sehen, aber ich weiß nicht, wie ich das beheben kann. Vielen Dank für Ihre Hilfe.
Wenn Sie setTimeout in einer Schleife verwenden, glaube ich, dass Sie es in anonyme Funktion mit Variable machen müssen. Ich hatte ähnliches Problem, aber nicht mit d3 – Riddell
"Ich kenne die Funktion refreshGraph kann nicht sehen, die var svg" - Noch etwas anderes. Es erscheint nirgendwo in dem Code, den Sie freigegeben haben. – Quentin
Nun, in diesem Stück Code, sehe ich nicht Svg irgendwo definiert ... – beerwin