Javascript DC.JS单击选择一个条
我试图在用户单击特定条形图时调用条形图上的函数。我意识到我需要使用renderlet向render函数添加一个监听器,然后从那里创建每个条的分组,该分组将添加一个点击事件 假设使用任何通用条形图,我称之为:Javascript DC.JS单击选择一个条,javascript,d3.js,dc.js,Javascript,D3.js,Dc.js,我试图在用户单击特定条形图时调用条形图上的函数。我意识到我需要使用renderlet向render函数添加一个监听器,然后从那里创建每个条的分组,该分组将添加一个点击事件 假设使用任何通用条形图,我称之为: barChart.on('renderlet', function(chart, filter) { // TODO Select the bars here and add an on click function }); 唯一的问题是,我无法找到如何使用该图表对象在条形图上执行
barChart.on('renderlet', function(chart, filter)
{
// TODO Select the bars here and add an on click function
});
唯一的问题是,我无法找到如何使用该图表对象在条形图上执行d3.select调用。当我转储对象时,在对象中看不到类似条的东西。对于这种情况,最简单的方法就是找到源代码。在这种情况下,
var enter = bars.enter()
.append('rect')
.attr('class', 'bar')
因此选择器是rect.bar
。此外,方便的方法chart.selectAll()
比直接使用d3要好,因为它只会在当前图表中进行选择
最后,为了避免对dc.js内部使用的事件进行踩踏,您可能需要为事件处理程序命名名称空间
加起来
barChart.on('renderlet.barclicker', function(chart, filter)
{
chart.selectAll('rect.bar').on('click.custom', function(d) {
// use the data in d to take the right action
});
});
非常感谢。这是完美的,我对Javascript的了解是10多年前的事了,所以我不知道如何从他们的代码中得到它。这显然是不明显的。我以为我只回答了选择题,然后我就想,“这个,那个”。。。希望这能成为新的标准答案。