6

我将 nvd3 用于多条形图,当用户单击我页面上的其他 html 时,我想重新绘制图表。我尝试使用 jQuery 选择 nvd3 主页 ( http://nvd3.org/ ) 上的“Stream0”图例圆圈,然后在控制台中使用以下代码段单击它:

$($('g.nv-series')[0]).click()

由于我希望对 javascript 更了解的人会立即明白的原因,没有任何反应。它与事件委托有关吗?

http://nvd3.org/

4

2 回答 2

10

你可以试试这个:

chart.legend.dispatch.legendClick = function(d, i){
//redraw
};

它会将您自己的方法附加到图例中;它适用于饼图不确定是否适用于折线图;

于 2013-10-10T06:40:40.347 回答
2

也许这有一些帮助。两个图表,一个饼图,一个堆栈,但仅在饼图上显示图例。数据不相同,但图例是..想要在点击饼图图例时更新两者。

        chart.legend.dispatch.on('stateChange.pie', function(d,i){
            setTimeout(function() {
                stackedAreaChart.dispatch.changeState(d,i);
                stackedAreaChart.update();
            }, 100);
        }); 

注意:使用“.pie”将扩展(库)stateChange 事件(而不是覆盖它)另一个图表stackedAreaChart 必须在范围内。注意有一个changeState事件和一个stateChange,最好是查看未缩小的nvd3 js文件..

于 2014-10-23T13:49:03.603 回答