我正在使用nvd3作为多条形图,我想在用户点击我页面上的其他html时重新绘制图表。我尝试使用jQuery在nvd3主页(http://nvd3.org/)上选择“Stream0”图例圈,然后在控制台中使用此代码段点击它:
$($('g.nv-series')[0]).click()
由于我希望对于那些对javascript更有见识的人立即显而易见的原因,没有任何反应。这与事件委托有关吗?
答案 0 :(得分:9)
你可以试试这个:
chart.legend.dispatch.legendClick = function(d, i){
//redraw
};
它会将自己的方法附加到图例中;它适用于饼图,不确定是否适用于折线图;
答案 1 :(得分:2)
也许这有一些帮助。两个图表,一个馅饼,一个堆栈,但只显示馅饼上的传说。 数据不尽相同,但传说是...... 想要在点击饼图上更新两者。
chart.legend.dispatch.on('stateChange.pie', function(d,i){
setTimeout(function() {
stackedAreaChart.dispatch.changeState(d,i);
stackedAreaChart.update();
}, 100);
});
注意:使用" .pie"将扩展(library)stateChange事件(不覆盖它) 另一个图表stackedAreaChart必须在范围内。 注意有一个changeState事件和一个stateChange,最好是查看未缩小的nvd3 js文件..