2014-11-17 2 views
6

ich nvd3 bin mit einem Liniendiagramm zeichnen und wenn ich die div nvd3 passiere ein Diagramm zu zeichnen gibt den mir diese FehlermeldungUncaught Typeerror: nicht Eigentum lesen ‚createElementNS‘ undefinierter

Uncaught TypeError: Cannot read property 'createElementNS' of undefined

Hier Code :

var chartDiv = 'line-chart'+ counter++; 
    tmpl = $($('#charts-panel-template').clone().html()); 
       tmpl.find('.feature-line-chart').attr('id', chartDiv); 
var div=tmpl.find('.feature-line-chart#'+chartDiv); 
      chartsPanel.append(tmpl); 
    nv.addGraph(function() { 
    var chart; 
    var width = 1024, height = 500; 
    chart = nv.models.lineChart() 
      // .color(sparkChart.colors) 
      .width(width).height(height); 
    //modify the x.axes 
     chart.x(function(d,i) { 
       return d.x; 
     }); 

    //giving chart margin 
    chart.margin({right: 40}); 

    $(div).empty(); 
    //create chart 

    var svg = d3.select(div).append('svg') 
     .datum(data) 
     .transition() 
     .duration(500) 
     .call(chart) 
     .attr('width', width) 
     .attr('height', height); 

meine Fragen,

  • , wo ich falsch mache
  • ist alles, was ich bin fehlt
+0

u kann eine Geige schreiben –

+0

'createElementNS' nicht einmal im Code genannt wird Sie auf dem Laufenden, so dass dieser Code kann; t haben sie ausgelöst. Es sei denn, es ist etwas allgemeines aus der Bibliothek. – somethinghere

Antwort

3

ich die Lösung bekommen haben ich bin vorbei Klasse und ID in der nvd3 obwohl die nvd3 id

var div=tmpl.find('.feature-line-chart#'+chartDiv); 

werden

var div='#'+chartDiv; 
15

nehmen olny ich nur lief auf das gleiche Problem.

d3.select($element) //no bueno 

Sie müssen den tatsächlichen DOM-Knoten übergeben, oder die ID wie Sie schließlich herausgefunden:

Sie können keine jquery Bezug auf d3.select() übergeben.

d3.select($element[0]) 

oder

d3.select("#id")