2013-08-29 2 views
4

Я использую nvd3 для многобайтовой диаграммы, и я хотел бы сделать перерисовку диаграммы, когда пользователь нажимает на другой html на моей странице. Я попытался с помощью JQuery, чтобы выбрать «Stream0» легенда круг на nvd3 домашнюю страницу (http://nvd3.org/) и нажмите на него, используя этот фрагмент кода в консоли:Событие кликов по событию триггера в nvd3 с использованием jquery?

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

По причинам, которые я надеюсь, будет сразу же очевидным для людей более осведомленными о javascript, ничего не происходит. Это как-то связано с делегированием событий?

http://nvd3.org/

+1

[Этот вопрос] (http://stackoverflow.com/questions/9063383/how-to-invoke -click-event-programmaticaly-in-d3). –

ответ

6

вы можете попробовать это:

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

Это добавит свой собственный метод легенды; он работает для круговой диаграммы, не уверен, работает ли для линейной диаграммы;

+1

Этот код запускается, когда пользователь нажимает на легенду, но неясно, как это может вызвать событие щелчка. – axiomx11

1

Возможно, в этом есть помощь. Две диаграммы, один пирог, один стек, но только показывающие легенды на пироге. Данные не идентичны, но легенды ... Хотите обновить оба клика на легенды пирога.

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

Примечание: с помощью «.pie» будет распространяться (библиотека) StateChange событие (не перезаписать) Другой график stackedAreaChart должен находиться в области видимости. Обратите внимание, что есть событие changeState и stateChange, лучше всего посмотреть на un-minified файл nvd3 js.

Смежные вопросы