【问题标题】:Selecting SVG with D3使用 D3 选择 SVG
【发布时间】:2016-08-28 14:57:27
【问题描述】:

我有以下功能:

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 时,我希望看到这个:

相反,我看到以下内容:

我看到的是0: null 而不是0: svg,为什么会这样?我如何选择 SVG 以使我能够在第一张图片中显示内容?

.map-wrap是这样的:

【问题讨论】:

  • 我们能看到 .map-wrap 元素吗?
  • @echonax 根据您的要求更新了 Q。谢谢
  • 可能是你调用函数时svg可能还没有创建
  • 似乎按预期工作jsfiddle.net/nikoshr/pee555cb
  • 我添加了更多代码。我处理mouseover 事件的方式是否正确?这是dc.js

标签: javascript d3.js svg dc.js


【解决方案1】:

正如西里尔所说,经过更好的调试,我意识到它确实是在创建svg元素之前被调用的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 2013-06-20
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    相关资源
    最近更新 更多