路径上的D3事件不起作用

时间:2016-03-06 15:37:26

标签: javascript html5 events d3.js svg

这就是我的所作所为:

var path = svg.selectAll(".arc")
    .data(pie(data).sort(null))
    .enter().append("g")
    .attr("class", "arc")
    .append("path").style("stroke-width", 0)
    .on("click", function(d){console.log(d)})
    .style("stroke", "white")
    .attr("d", arc)
    .style("fill", color)
    .style("opacity", function(d){ return(d.data.name == "ess")?0.6:1})
    .on("mouseover", function(d,i){ alert(1);})
    .on("mouseout", animateSecondStep);

但这些事件都没有解雇

This is what i get in events

这是JSFiddle https://jsfiddle.net/4pmdaaaz/1/

1 个答案:

答案 0 :(得分:1)

看起来像这一行:

document.getElementById(element).innerHTML += "<div class='result visible'><div class='giant-text' style='font-size:32px;'>" + precentage + "%</div> </div>";

正在搞乱互动。没有它的工作,更新小提琴:https://jsfiddle.net/reko91/4pmdaaaz/3/

由于您更改了id为'first'的元素的innerHTML,这是饼图的容器。我绝对建议不要使用innerHTML而是使用textContent。但在这种情况下,我建议创建一个新的div并更改该div的样式以显示,在这种情况下,33%:)

希望有所帮助