我想知道是否有人知道如何使轴上的标签可点击.现在我的轴生成如下:
// Add an x-axis with label.
svg.append("g")
.attr("id", "xaxis")
.attr("class", "x axis")
.attr("transform", "translate(" + (margin.left + margin.left_padding) + "," + height + ")")
.attr("text_anchor", "top")
.call(d3.svg.axis().scale(x).orient("bottom"))
.selectAll("text")
.style("text-anchor", "end")
.attr("font-size", "12")
.attr("dx", "-.8em")
.attr("dy", ".15em")
.attr("transform", function(d) {
return "rotate(-45)"
})
// Add a y-axis with label.
svg.append("g")
.attr("id", "yaxis")
.attr("class", "y axis")
.attr("transform", "translate(" + (margin.left + margin.left_padding) + "," + 0 + ")")
.attr("text-anchor", "right")
.call(d3.svg.axis().scale(y).orient("left"))
.selectAll("text")
.attr("font-size", "12")
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何使轴上的每个数字/标签都有一个onclick事件.
cke*_*sch 15
您可以使用d3选择它们,然后使用它将函数绑定到它们 .on('click', function)
对于您的代码,这看起来像这样:
d3.select('#xaxis')
.selectAll('.tick.major')
.on('click',clickMe)
function clickMe(){alert("I've been clicked!")}
Run Code Online (Sandbox Code Playgroud)
请注意,这将选择整个刻度,而不仅仅是文本,因为.tick.major是包含刻度标签(文本)和刻度本身(SVG行)的组的类.
您还可以d在要在tick上调用的函数中使用参数作为参数.如果这样做,d将包含tick的值.例如,以下内容将发送包含每个tick值的警报:
d3.select('#xaxis')
.selectAll('.tick.major')
.on('click',clickMe)
function clickMe(d){alert(d)}
Run Code Online (Sandbox Code Playgroud)
请注意,您可以调用.major而不是.tick.major除了主要刻度之外的其他内容major.
| 归档时间: |
|
| 查看次数: |
6138 次 |
| 最近记录: |