每个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', ...)
但是现在您必须查看源代码,找出每个图表中要选择的内容。而这里的命名空间是必不可少的,因为你不想干涉内部事件处理。
感谢您的回复。但过滤的事件不适用于我,因为我想显示的是1.点击的图表名称2.显示在渲染之前点击为图像的图表和3.显示渲染后点击为图像的图表。所以我需要每个图表的CLICK事件和RANGE FILTERED EVENT以防止它允许选择范围。你能帮忙吗? –
我不明白为什么你不能使用过滤的事件,但无论如何阅读我的整个答案;我还展示了如何观看点击事件。 – Gordon