dc.js onClick 侦听器不工作

use*_*051 2 charts onclick listener bar-chart dc.js

我无法让 onClick 侦听器与 dc.barChart 一起使用。根据这个线程,可点击图表现在应该有一个 onClick 监听器。但是,我尝试过 chart.onClick = function 和 chart.on("click", function) 都没有任何运气。下面是我试图测试侦听器是否正常工作的代码。

var hubChart = dc.barChart("#hub-chart");

var dateHub = dateCF.dimension(function(d){ return d.hub;}),
    dateHubs = dateHub.group().reduceSum(function(d){
        return d.total;
    });

var minHub = dateHub.bottom(1)[0].hub;
var maxHub = dateHub.top(1)[0].hub;

hubChart.width(0.40 * window.innerWidth)
    .height(350)
    .dimension(dateHub)
    .group(dateHubs)
    .x(d3.scale.linear().domain([minHub, maxHub]))
    .elasticY(true)
    .elasticX(true)
    .brushOn(false);

hubChart.on("preRedraw", function (chart) {
    chart.rescale();
});
hubChart.on("preRender", function (chart) {
    chart.rescale();
});

hubChart.onClick = function(chart){
    console.log(true);
}

hubChart.on("click", function (chart) {
    console.log(true);
});

hubChart.render();
Run Code Online (Sandbox Code Playgroud)

每当单击图表时,这应该会导致 true 打印到控制台,但什么也没有发生。

Gor*_*don 5

似乎 onClick 仅对具有序数 X 轴的条形图启用。只要你愿意替换内置的点击行为,你就可以使用 dc 对 d3 选择器的访问,在一个 renderlet 中完成同样的事情:

chart.on("renderlet.somename", function(chart) {
  chart.selectAll('rect').on("click", function(d) {
    console.log("click!", d);
  });
});
Run Code Online (Sandbox Code Playgroud)

我打开了一个问题来跟踪问题/请求:https : //github.com/dc-js/dc.js/issues/633