javascript - 使用 d3 将按钮添加到 <g> 元素

标签 javascript button d3.js

我想知道使用 d3 向我的组元素添加按钮的最佳方法是什么。

我目前使用 d3 构建了我的视觉效果,如下所示:

<div>
  <svg>
    <g>
      <rect>
    </g>
    <g>...</g>
  </svg>
</div>

所以我想知道如何在每个组元素中添加一个可点击的按钮。我的一些想法是:

g.append("a")
  .append("image")
  .attr("src", ...);

g.append("a")
  .append("rect")
  .attr(...)

最终我希望按钮执行 onclick 事件。解决这个问题的最佳方法是什么?

最佳答案

您可以创建一个矩形并使用d3的selection.on注册点击监听器的api:

var rect = d3.select('svg g rect');

rect.on('click', function() {
  console.log('i was clicked');
});
.as-console-wrapper { max-height: 3.5em !important; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg width="400" height="400">
  <g transform="translate(50,50)">
    <rect height="100" width="200" fill="red"/>
  </g>
</svg>

关于javascript - 使用 d3 将按钮添加到 <g> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27009672/

相关文章:

javascript - D3 饼图工具提示和动画问题

javascript - 类型错误 : Cannot read property 'summary' of undefined React Js

javascript - 通过不同的按钮调用具有不同参数的函数 - JavaScript

javascript - 将图片动态添加到 Photoswipe

android - 操作栏对齐按钮

python - PyQt 中的布局由 QWidgetItems 而不是 QPushButtons 组成,并且没有属性文本

html - 为什么我的 NEXT 和 PREVIOUS 按钮位于屏幕的右侧而不是底部

javascript - dc.js - 使用 jquery 数据表插件的数据表

svg - D3.js:更新 LinearGradient 中的停止点

javascript - 自定义 DatePicker Angular Formly 字段不会出现验证错误消息