我正在尝试创建带有文本标签的按钮,并且我希望按钮和标签都能够响应单击,并且我希望将鼠标悬停在颜色上。该代码有效,除了在文本标签上方失去悬停颜色外。在文本标签上方时,我需要添加什么或采取其他措施来保持悬停颜色?

<!DOCTYPE html>
<style>
#resetButton {
  cursor: pointer;
  fill: #FFF68F;
}
#resetButton:hover {
  cursor: pointer;
  fill: #FFFF00;
}
</style>
<div id = "main"> </div>
<script src = "http://d3js.org/d3.v3.min.js"> </script>
<script>
var svg = d3.select('#main')
    .append('svg')
var g = svg.append("g")
  .attr({id: "resetButton"})
g.append('circle') // reset button
  .attr({cx: 100, cy: 100, r: 25})
  .attr({id: "resetButton"})
  .attr({onclick: "doSomething()" })
g.append('text') // button label
  .attr({x: 100, y: 95})
  .attr({fill: "black"})
  .attr({"font-size":  20})
  .attr({"text-anchor": "middle"})
  .text('R')
  .attr({onclick: "doSomething()" })
doSomething = function() {
  alert("Reset")
}
</script>

最佳答案

关闭文本元素的指针事件。

g.append('text') // button label
  .attr({"pointer-events": "none"})
  ...


Demo here

09-10 12:23
查看更多