これがd3.jsの質問なのか、javascriptの可視性の質問なのかわかりません。同じイベントリスナーを異なるノードに割り当てる2つの関数があります。
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()
、可変スコープの問題をどのように解決するかわかりません。