D3.js .on()事件的d3链方法

D3.js .on()事件的d3链方法,d3.js,mouseevent,method-chaining,D3.js,Mouseevent,Method Chaining,感谢使用此帮助设置的可重用表 我有一个很好的可重用代码,例如: 初始化和调用它很简单: var t1 = myreusabletable(); // initialization t1.columns(["id","column","other_column"]) // column setup d3.json("data.json",function(error,data){ d3.select("body").datum(data).call(t1) }); 但是,到目前为止,事

感谢使用此帮助设置的可重用表

我有一个很好的可重用代码,例如:

初始化和调用它很简单:

var t1 = myreusabletable(); // initialization
t1.columns(["id","column","other_column"]) // column setup

d3.json("data.json",function(error,data){
    d3.select("body").datum(data).call(t1)
});
但是,到目前为止,事件绑定 必须在myreusabletable函数中预先编码:

rows.on('mouseover', function(d){mouseover(d)});
从外面坐下来

function mouseover(d){
  ...
}
我的问题是:如何在myreusabletable中设置方法,以便从外部链接.OneEvent函数,如下所示:

var t1 = myreusabletable(); // initialization
t1.columns(["id","column","other_column"]) // column setup
  .on("mouseover",function(d,i){...})  // event binding setup here
  .on("click",function(d,i){...}) // event binding setup here

谢谢你的帮助

您是否尝试在on中的函数末尾返回此或那个?我显然不知道它是否有效,但值得一试。事实上,.on是一个d3.js方法,而内部调用的函数是一个自定义函数,我根据自己的需要编写。onmouseover,customfunction如果需要,如此类推,在这种特殊情况下,返回此值毫无意义。是否希望on侦听器应用于整个表或其中的单个元素行、单元格等?我希望将其应用于行,或者,作为替代,我希望以类似t1.rows.onmouseover,…,t1.cells.onmouseclick,。。。