2014-11-17 4 views
6

Я использую nvd3 нарисовать линейный график, и когда я передать дела до nvd3 нарисовать график его дать мне эту ошибкуUncaught TypeError: Не удается прочитать свойство «createElementNS» неопределенного

Uncaught TypeError: Cannot read property 'createElementNS' of undefined

Вот код :

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); 

мои вопросы,

  • где я делаю неправильно
  • что-нибудь мне не хватает
+0

может у поста скрипки –

+0

'createElementNS' даже не упоминаются в коде вы в курсе, так что этот код может, т вызвал его. Разве что-то общее из библиотеки. – somethinghere

ответ

3

я получил решение я передаю класс и идентификатор в nvd3 хотя nvd3 Olny принимать идентификатор

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

стать

var div='#'+chartDiv; 
15

Я просто столкнулись с тем же вопросом.

Вы не можете передать ссылку на Jquery d3.select():

d3.select($element) //no bueno 

Вы должны передать фактический узел DOM, или идентификатор, как вы в конце концов разобрался.

d3.select($element[0]) 

или

d3.select("#id") 
Смежные вопросы