Javascript 在我的d3图表中,当我更改画笔并单击“未选定范围”时,缩放选择将消失

Javascript 在我的d3图表中,当我更改画笔并单击“未选定范围”时,缩放选择将消失,javascript,d3.js,Javascript,D3.js,在我的d3图表中,当我更改画笔并单击“未选定范围”时,缩放选择将消失 这是我的工作代码- 当我更改上面的选择并单击未选择的选择时,缩放选择将消失 请告诉我我的代码有什么问题。只需在代码中取消对这部分的注释,即可实际生成缩放矩形,该矩形将在拉丝功能中使用 svg .append("rect") .attr("class", "zoom") .attr("width", containerWidth - 20) .attr("height"

在我的d3图表中,当我更改画笔并单击“未选定范围”时,缩放选择将消失

这是我的工作代码-

当我更改上面的选择并单击未选择的选择时,缩放选择将消失


请告诉我我的代码有什么问题。

只需在代码中取消对这部分的注释,即可实际生成缩放矩形,该矩形将在
拉丝功能中使用

    svg
      .append("rect")
      .attr("class", "zoom")
      .attr("width", containerWidth - 20)
      .attr("height", height)
      .attr("transform", "translate(0,20)")
      .call(zoom);

请参见“工作”

这可能是因为一旦您更改了上面的选择,您就可以在未选择的区域单击并拖动鼠标,然后放手创建新的选择区域。你不想这样吗?@Coola,这是我们希望点击并拖动来创建新的选择,但是如果我只点击它不应该隐藏选择,直到我点击并拖动到某个选择,在下面的URL中,你可以检查我试图实现的预期行为。我对你的最终目标有点困惑。你能再详细一点吗?我想你的意思是为什么绿色覆盖消失了?@Coola是的,没错,我有问题了,谢谢,我没有添加缩放,因为我不想让用户用光标从图表中进行缩放。所以我没有调用
.call(zoom)但正因为如此,我在dot上的图表点击功能不起作用。修改代码-
散点。追加(“rect”).attr(“class”,“zoom”).attr(“width”,containerWidth-20)。attr(“height”,height)。attr(“transform”,“translate(0,20)”
svg
更改为
scatter
,它正在工作,并将此代码移动到
scatter之前。选择所有(“.rect元素”)
此代码。我不是在呼叫
。呼叫(缩放)
是否正确?问题是它是否正确取决于您的最终目标。它似乎对你有用,在我这方面,我也没有看到任何错误。如果你不需要缩放,就不要叫它。你能帮我吗?