javascript - 路径上的 D3 事件不起作用

标签 javascript html 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/

最佳答案

看起来像这一行:

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

扰乱了交互。没有它也可以工作,更新了 fiddle :https://jsfiddle.net/reko91/4pmdaaaz/3/

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

希望有帮助

关于javascript - 路径上的 D3 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35828834/

相关文章:

events - 如何确保我的事件仅由我的应用程序的一个实例处理?

c# - 如何从同一个类中的静态函数调用公共(public)事件?

javascript - 使用 JSNI 调用带参数的 javascript 函数

javascript - jQuery 从 JSON 创建选择列表选项,没有像宣传的那样发生?

javascript - 连续选择文件上传

javascript - ionic : Show active/inactive button when two times clicked

javascript - 在新的 ajax 加载内容之后刷新 dom 处理程序的最明智的方法是什么?

javascript - 与 iframe 交互 - 获取选定的 HTML

javascript - 如何使用 Angular 在页面加载时设置事件状态

events - 在 XML-RPC 或 SOAP 中实现回调