将路径元素包装在锚标记中
Wrapping path elements in an anchor tag
我正在尝试使我在 d3 中的圆环图中的<text>
和<path>
元素可点击,但遇到了一些问题。 这是我正在使用的代码:
var g = svg.append('g')
.attr('transform', 'translate(' + width / 2 + ',' + ((height / 2)) + ')');
var arcs = g.selectAll('path');
arcs = arcs.data(pie(formattedData));
arcs.exit().remove();
arcs.enter().append('path')
.style('stroke', 'white')
.attr('fill', function (d, i) { return color(i) });
arcs.attr('d', arc);
arcs.append("text")
.attr("transform", function (d) { return "translate(" + labelArc.centroid(d) + ")"; })
.attr("dy", "0em")
.attr("style", "font-size: 1.5em;")
.attr("fill", "white")
.text(function (d) { return d.value; })
我可以通过直接在开发工具中编辑 DOM 来在<path>
和<text>
元素周围添加 <a>
标记,但我也无法.wrap()
或更改代码以使用它:
.append("a").attr("href", "http://wwww.gooogle.com")
我错过了什么?
您只需将
a
元素附加到 path
或 text
元素之前即可执行此操作:
arcs.enter()
.append('a')
.attr('href', 'http://www.google.com')
.append('path')
.style('stroke', 'white')
.attr('fill', function (d, i) { return color(i) })
.attr('d', arc);
请参阅 https://jsfiddle.net/m4mj8u7L/1/
看起来你正在尝试用jQuery编辑SVG DOM元素。如果是这样,不久前我自己也遇到了这个问题。SVG 元素的处理方式与普通 HTML 元素不同,因此许多 jQuery 函数不会影响它们。不过,您可以使用一些替代语法来解决这些限制。看看这个答案,寻找一些方向。
相关文章:
- 什么'这是返回元素的好方法's路径
- 捕捉.svg拖动路径元素
- 无法绑定 svg 路径元素上的触发器单击
- 如何通过单击命令将一个SVG路径元素变形为另一个
- 当从下拉列表中选择路径元素的值时,如何更改其颜色
- SVG 文本路径元素在使用 Javascript 生成时在 Firefox 中呈现不正确
- SVG路径元素的动画化
- 使用d3.js在svg路径元素上绘制文本
- 当鼠标移动到svg路径元素内部时,触发mouseout/mouseleave
- ui-router Go创建双路径元素
- 无法使用selenium webdriver单击svg路径元素
- 改变rapha 235; 1路径元素的正确方法是什么?
- 使用javascript从url获取第二个路径元素
- GreenSock TimelineMax的路径元素不工作在Safari和Firefox
- SVG路径元素未触发JavaFX8 Web视图中的鼠标事件
- 为什么FireFox不总是选择正确的事件目标?(路径元素特定)
- 制作一个矩形,知道边的两条垂直线(路径元素)的位置
- 将路径元素包装在锚标记中
- 是否有一种方法可以使用Javascript合并两个路径元素(svg)
- 如何应用转换到svg路径元素