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一樣的功能呢?
你試過用JQuery觸發事件嗎? –
@LarsKotthoff當然。但是,如果將圖表#2中的數據(d,i,this)懸停在圖表#1元素上時,如何將這些數據提供給圖表#2的build_tooltip版本?這與jQuery的問題是一樣的。據我所知,我需要以某種方式觸發D3的mouseover事件,並且我不知道如何使用D3或jQuery來做到這一點。 – daveycroqet
您是否嘗試過使用D3的[dispatch](https://github.com/mbostock/d3/wiki/Internals#d3_dispatch)? 如果沒有,請參閱此[示例](http://bl.ocks.org/mbostock/5872848)以瞭解有關如何使用它的更多詳細信息。 – 1cgonza