Javascript DC.JS单击选择一个条

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 }); 唯一的问题是,我无法找到如何使用该图表对象在条形图上执行

我试图在用户单击特定条形图时调用条形图上的函数。我意识到我需要使用renderlet向render函数添加一个监听器,然后从那里创建每个条的分组,该分组将添加一个点击事件

假设使用任何通用条形图,我称之为:

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多年前的事了,所以我不知道如何从他们的代码中得到它。这显然是不明显的。我以为我只回答了选择题,然后我就想,“这个,那个”。。。希望这能成为新的标准答案。