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

问题描述:

我正在使用dc.js显示我仪表板上的某些图表。我在寻找的是处理每个图表的点击事件(例如条形图点击事件,饼图点击事件和范围图表的鼠标向上事件等),并将点击图表的历史保存到数据库中。通过这种方式,用户可以在登录后看到用户对任何图表所做的点击。每个dc.js图表​​的点击事件

我检查了点击事件的dc.js,但我没有得到正确的。

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

这可能是更容易,更乐于助人,观看了“过滤”事件:

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

我说的容易,因为你不必担心看不同的图表不同的事件。更有帮助,因为“过滤”会显示点击的结果而无需进一步处理,因此您可以显示实际查看的内容,而不仅仅是点击的内容。

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

如果您确实需要单击事件,您可以通过分配给它并调用旧处理程序(yuck)来覆盖chart.onClick,或者可以使用例如

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

但是现在您必须查看源代码,找出每个图表中要选择的内容。而这里的命名空间是必不可少的,因为你不想干涉内部事件处理。

+0

感谢您的回复。但过滤的事件不适用于我,因为我想显示的是1.点击的图表名称2.显示在渲染之前点击为图像的图表和3.显示渲染后点击为图像的图表。所以我需要每个图表的CLICK事件和RANGE FILTERED EVENT以防止它允许选择范围。你能帮忙吗? –

+0

我不明白为什么你不能使用过滤的事件,但无论如何阅读我的整个答案;我还展示了如何观看点击事件。 – Gordon