Javascript 如何将href应用于整个svg?

Javascript 如何将href应用于整个svg?,javascript,d3.js,svg,href,Javascript,D3.js,Svg,Href,我有一个页面,在那里我建立了一堆饼图。在每一个页面上,我都想将href添加到页面上的另一个位置 目前我的代码可以工作,但它只将href应用于饼图的各个部分以及文本。例如,如果你点击饼图上的一个圆环,它会正常工作,但是如果你点击圆环之间的空间,它不会 SVG本身更大,更容易单击,但即使我将锚定标记附加到SVG,它也只适用于SVG中的元素。如何纠正这种行为 function pieChartBuilder(teamName, values) { var dataset = values;

我有一个页面,在那里我建立了一堆饼图。在每一个页面上,我都想将href添加到页面上的另一个位置

目前我的代码可以工作,但它只将href应用于饼图的各个部分以及文本。例如,如果你点击饼图上的一个圆环,它会正常工作,但是如果你点击圆环之间的空间,它不会

SVG本身更大,更容易单击,但即使我将锚定标记附加到SVG,它也只适用于SVG中的元素。如何纠正这种行为

function pieChartBuilder(teamName, values) {
    var dataset = values;

    var trimTitle = teamName.replace(' ', '');
    trimTitle = trimTitle.toLowerCase();

    var width = 175,
        height = 175,
        cwidth = 8;

    var color = d3.scale.category20();

    var pie = d3.layout.pie()
        .sort(null);

    var arc = d3.svg.arc();

    var svg = d3.select("#pieChart").append("svg")
        .attr("width", width)
        .attr("height", height)
        .append("a") // here is where I append the anchor tag to the SVG, but it only applies to the individual elements within.
        .attr("href", ("#" + trimTitle))
        .append("g")
        .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")")

    var gs = svg.selectAll("g").data(d3.values(dataset)).enter().append("g");
    var path = gs.selectAll("path")
        .data(function (d) { return pie(d); })
        .enter().append("path")
        .attr("fill", function (d, i) { return color(i); })
        .attr("d", function (d, i, j) { return arc.innerRadius(5 + cwidth * j).outerRadius(3 + cwidth * (j + 1))(d); });

    svg.append("text")
        .attr("class", "title")
        .attr("x", 0)
        .attr("y", (0 - (height / 2.5)))
        .attr("text-anchor", "middle")
        .style("fill", "#808080")
        .text(teamName);

}

我想你只是选错了方向。您希望svg包含在a标记中,对吗

d3.select("#pieChart")
  .append("a")
  .append("svg");

您1选择pieChart,然后2向其添加a标记,然后3向其添加svg。

您的添加到svg。你不想创建一个并附加svg吗?哦,奇怪的是,我确信如果你在svg上附加一个标签,它会工作,但我现在看到了为什么不会这样。谢谢