我将 nvd3 用于多条形图,当用户单击我页面上的其他 html 时,我想重新绘制图表。我尝试使用 jQuery 选择 nvd3 主页 ( http://nvd3.org/ ) 上的“Stream0”图例圆圈,然后在控制台中使用以下代码段单击它:
$($('g.nv-series')[0]).click()
由于我希望对 javascript 更了解的人会立即明白的原因,没有任何反应。它与事件委托有关吗?
我将 nvd3 用于多条形图,当用户单击我页面上的其他 html 时,我想重新绘制图表。我尝试使用 jQuery 选择 nvd3 主页 ( http://nvd3.org/ ) 上的“Stream0”图例圆圈,然后在控制台中使用以下代码段单击它:
$($('g.nv-series')[0]).click()
由于我希望对 javascript 更了解的人会立即明白的原因,没有任何反应。它与事件委托有关吗?
你可以试试这个:
chart.legend.dispatch.legendClick = function(d, i){
//redraw
};
它会将您自己的方法附加到图例中;它适用于饼图不确定是否适用于折线图;
也许这有一些帮助。两个图表,一个饼图,一个堆栈,但仅在饼图上显示图例。数据不相同,但图例是..想要在点击饼图图例时更新两者。
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文件..