2015-09-11 31 views
1

我正在使用Google Charts的Sankey Chart,並且我已經計算出在工具提示功能中使用html,但我無法完全弄清楚如何調整它使圖的其他特徵也可以使用html特徵。Google Charts:將Sankey.node.label設置爲HTML鏈接

理想我想設置Sankey.node.label元素可以鏈接到該網站上的其他網頁....

我已經試過像

data.addColumn({'type':'string', 'role': 'From', 'p': {'html': true} }); 

與事

From: { isHtml:true } 

但他們似乎沒有工作。 建議感激!

回答

0

雖然我確實設法使用jQuery和Javascript來實現這個功能,但它從來沒有得到我想要的全部功能,所以我使用Sankey進行了報廢。但如果你想知道如何設置sankey.node.label爲一個HTML鏈接,這是我的解決方案:

$(document).ready(function() { 
setTimeout(function(){ 
// Selects SVG TAG and ADDS LINK FUNCTIONALITY 
var svgtag = document.querySelector("#sankey_multiple > div > div:nth-child(1) > div > svg") 
$(svgtag).attr("xmlns:xlink", "http://www.w3.org/1999/xlink") 

var linkNode = document.querySelector("#sankey_multiple > div > div:nth-child(1) > div > svg > g:nth-child(3) > text:nth-child(1)") 
$(linkNode).wrap("<a xlink:href='examplelinkone.com'></a>") 

var linkNode = document.querySelector("#sankey_multiple > div > div:nth-child(1) > div > svg > g:nth-child(3) > text:nth-child(3)") 
$(linkNode).wrap("<a xlink:href='examplelinktwo.com'></a>") 

$("#sankey_multiple").html($("#sankey_multiple").html()); 

}, 500); 
}); 

首先,我們不得不把XLink的添加到SVG標籤,以使文本標籤的svg函數作爲鏈接。之後,我們可以將鏈接節點封裝在svg中,並將xlink鏈接到所需的URL。

但是,在此之後,我們仍然需要重新實例化SVG繪圖,以便使頁面上的鏈接更新。這個想法是「刷新全SVG」(如這裏建議:jquery's append not working with svg element?):

$("#svgid").html($("#svgid").html()); 
在這一點上

所以,我稱之爲加載頁面後,這100毫秒,這樣的鏈接將是地方的時候一切都加載。這工作得很好,鏈接加載和可追蹤。

但是這樣做「刷新」只是簡單地重寫了Sankey並覆蓋了其他東西,如工具提示功能。這就是我認爲這只是變得不守規矩,並決定追求不同的機智。

希望這可能會給別人一些關於如何使用這個最終工作的想法!