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