在D3 V4中添加自定义刷柄?

时间:2016-08-08 15:34:26

标签: javascript d3.js

我正在尝试将一些自定义元素添加到我正在处理的D3项目中的画笔手柄上 - the desired final result is here - 我被D3 V4从<g>移动一直困扰着用于<rect>元素的画笔句柄的元素。 V4文档说您可以使用.handle--*类添加,删除或修改画笔句柄,但我无法使其工作。例如,当我调用时:

const brushContainer = d3.select('#brushContainer');
brushContainer.call(d3.brushX());
brushContainer.selectAll('.handle').remove();
brushContainer.append('rect')
  .attr('class', 'handle handle--w');

我收到以下错误:

TypeError: undefined is not an object (evaluating 'd.type')

请注意,我不一定期望上述代码可以使用,但我无法在文档或源代码中找到任何有用的示例或任何线索。

修改:我只是想要独立添加所需的<g>,然后在x上将d3.event.selection属性更改为brush 。我希望能够使用<g>作为句柄,这种方法使它们没有点击处理程序,但如果这是Canonical Right Answer,我会继续这样做。

1 个答案:

答案 0 :(得分:0)

是的,您应该使用画笔事件独立添加和定位手柄。

https://github.com/d3/d3-brush/issues/14