Методы цепочки d3 для событий .on()

Благодаря многоразовому столу, созданному с помощью этой помощи

Обновление таблицы HTML в d3.js с использованием многоразовой диаграммы

У меня есть хороший многоразовый код D3.js, примененный, например, здесь:

http://ross.iasfbo.inaf.it/~gloria/web-examples/valencia/bright-stars.html

Инициализировать и вызвать его просто:

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(), чтобы я мог связать .on(event,function) извне следующим образом:

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

Спасибо за помощь!


person leonard vertighel    schedule 22.06.2013    source источник
comment
вы пробовали return this или that в конце функции внутри on? Я явно не знаю, сработает ли это, но попробовать стоит.   -  person Christopher Chiche    schedule 22.06.2013
comment
Дело в том, что .on() — это метод d3.js, а вызываемая внутри функция — это кастомная функция, которую я программирую под свои нужды (.on("mouseover",customfunction), если нужно, и так далее), поэтому возвращать this в данном конкретном случае нет смысла.   -  person leonard vertighel    schedule 22.06.2013
comment
Вы хотите, чтобы слушатель on применялся ко всей таблице или к отдельным элементам (строкам, ячейкам и т. д.) в ней?   -  person nsonnad    schedule 24.06.2013
comment
Я хотел бы применить его к строкам или, в качестве альтернативы, я хотел бы выбрать таким образом, как t1.rows.on("mouseover",...), t1.cells.on("mouseclick",...)   -  person leonard vertighel    schedule 24.06.2013