带文字标签的按钮:即使在文本标签上方,如何保持悬停颜色?

时间:2014-04-19 12:12:24

标签: javascript css svg d3.js

我正在尝试创建一个带有文本标签的按钮,我希望按钮和标签都能响应点击,并且我想要一个悬停颜色。此代码有效,只是在文本标签上方丢失了悬停颜色。在文本标签上方,我需要添加或做些什么来保持悬停颜色?

<!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>

1 个答案:

答案 0 :(得分:2)

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

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

Demo here