2015-10-20 57 views
0

我有兩個相同的圖表。圖形中爲其建立像這樣:D3.js:觸發不同圖表中的事件

circles.enter().append("circle") 
    .attr("r", 0) 
    .attr("fill", function(d) { return fill_color; }) 
    .attr("class", function(d) { return "circle_" + d.id; }) 
    .on("mouseover", function(d, i) { build_tooltip(d, i, this); }) 
    .on("mouseout", function(d, i) { hide_tooltip(d, i, this); }); 

mouseover,它觸發以下功能:

build_tooltip = function(data, i, element) { 
    var content = "Title: " + data.title; 
    show_tooltip(content, d3.event); 
} 

我的問題是:我怎樣才能使它所以鼠標懸停在圖表#1的圓在圖表#2中觸發相同的鼠標懸停事件,但每個圖表都有唯一的數據?圖表#2必須生成自己的一組數據(在本例中,只是一個標題)。那麼,如何在Chart#1的時候讓Chart#2的mouseover事件觸發?

在jQuery中,這將非常簡單 - 有一個文字.trigger()事件。但是我怎樣才能完成和D3一樣的功能呢?

+0

你試過用JQuery觸發事件嗎? –

+0

@LarsKotthoff當然。但是,如果將圖表#2中的數據(d,i,this)懸停在圖表#1元素上時,如何將這些數據提供給圖表#2的build_tooltip版本?這與jQuery的問題是一樣的。據我所知,我需要以某種方式觸發D3的mouseover事件,並且我不知道如何使用D3或jQuery來做到這一點。 – daveycroqet

+1

您是否嘗試過使用D3的[dispatch](https://github.com/mbostock/d3/wiki/Internals#d3_dispatch)? 如果沒有,請參閱此[示例](http://bl.ocks.org/mbostock/5872848)以瞭解有關如何使用它的更多詳細信息。 – 1cgonza

回答