我不确定这是 d3.js 问题还是 javascript 可见性问题。我有两个函数将相同的事件侦听器分配给不同的节点:
function render_line(){
var x = d3.scale.ordinal();
...
d3.select("#my_line").on("click", onclick);
}
function render_bar(){
var y= d3.scale.linear();
...
d3.select("#my_bar").on("click", onclick);
}
function onclick(d,i){
use(x,y) // error: can't access x or y
...
}
我认为共享相同的事件侦听器函数对两者都很有意义,render_line()
因为render_bar()
单击一个也应该更新另一个,但我不知道如何解决变量范围问题。