每个 dc.js 图表的点击事件

Click events of each dc.js chart

我正在使用 dc.js 在我的仪表板上显示一些图表。我正在寻找的是处理每个图表的点击事件(例如条形图点击事件、饼图点击事件和范围图表的鼠标向上事件等)并将点击图表的历史记录保存在数据库中。这样用户将能够在登录后看到用户对任何图表的点击。

我已经检查了 dc.js 的点击事件,但我没有正确获取。

有人可以帮助我吗?任何帮助将不胜感激。

观看 'filtered' 活动可能更容易,也更有帮助:

chart.on('filtered.monitor', function(chart, filter) {
    // report the filter applied
});

我说的更简单,因为您不必担心针对不同的图表观看不同的事件。更有帮助,因为 'filtered' 向您显示点击的结果而不进行进一步处理,因此您可以显示实际查看的内容,而不仅仅是点击的内容。

上例中的

.monitor 是一个事件命名空间。你可以在那里使用任何你想要的字符串,但一定要使用一些命名空间以避免踩到同一事件的其他观察者。

如果你真的想要点击事件,你可以通过分配给它并调用旧的处理程序(糟糕)来覆盖 chart.onClick,或者你可以使用例如

chart.selectAll('rect.bar').on('click.monitor', ...)

但是现在您必须查看源代码才能弄清楚每个图表中 select 的内容。而这里的命名空间是必不可少的,因为你不想干扰内部事件处理。