2016-05-03 5 views
2

У меня есть следующие функции:Выбор SVG с D3

function myfunc(d) { 
    var svg = d3.select('.map-wrap svg'); 
    console.log('svg is:'); 
    console.log(svg); 

    // interesting stuff happens later ... 
} 

Я называю эту функцию на mouseover события. Вот код, который должен вызываться myfunc.

myChart.width(800) 
    .height(800) 
    .dimension(xDim) 
    .group(xDimGrp) 
    .projection(projection) 
    .colors(quantize) 
    .colorDomain(quantize.domain()) 
    .colorCalculator(function (d) { return d ? getColorClass(myChart.colors()(d)) : '#ccc'; }) 
    .overlayGeoJson(map.features, 'states', function (d) { 
     return d.properties.state; 
    }).on('mouseover', myfunc); 

Когда я распечатать svg я ожидаю увидеть это:

svg object in array

вместо этого, я вижу следующее:

svg is null

Я вижу 0: null вместо 0: svg, почему это происходит? Как я могу выбрать SVG таким образом, чтобы дать мне то, что показано на первом снимке?

.map-wrap, как так:

map wrapper div

+0

можно ли увидеть элемент .map-wrap? – echonax

+0

@echonax обновил Q тем, что вы запросили. Thx – Ciwan

+2

может быть, когда вы вызываете функцию svg, возможно, не были созданы – Cyril

ответ

0

Это было, как сказал Кирилл, после отладки лучше, я понял, что это было на самом деле вызывается перед созданием svg элемента.