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

时间:2015-07-19 13:16:55

标签: charts dashboard dc.js

我使用dc.js在我的信息中心上显示一些图表。我正在寻找的是处理每个图表的点击事件(例如条形图点击事件,饼图点击事件和远程图表的鼠标注册事件等)并保存点击图表在数据库中的历史记录。这样,用户将能够在登录后看到用户为任何图表所做的点击。

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

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

1 个答案:

答案 0 :(得分:16)

观看“过滤”事件可能更容易,也更有帮助:

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

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

上例中的

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

如果您真的想要点击活动,可以通过分配chart.onClick并调用旧处理程序(yuck)来覆盖chart.selectAll('rect.bar').on('click.monitor', ...) ,或者您可以使用例如

com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
        default: { down: round-down, up: round, font: default-font },
    },

但现在你必须查看来源,找出每个图表中要选择的内容。此处的命名空间非常重要,因为您不希望干扰内部事件处理。