Svg Google图表:将Sankey.node.label设置为HTML链接
我正在使用Google Charts中的Sankey图表,我已经知道如何在工具提示功能中使用html,但我不太清楚如何调整它,以便图形的其他功能也可以使用html功能 理想情况下,我希望将Sankey.node.label元素设置为能够链接到站点上的其他页面 我试过这样的方法Svg Google图表:将Sankey.node.label设置为HTML链接,svg,google-visualization,Svg,Google Visualization,我正在使用Google Charts中的Sankey图表,我已经知道如何在工具提示功能中使用html,但我不太清楚如何调整它,以便图形的其他功能也可以使用html功能 理想情况下,我希望将Sankey.node.label元素设置为能够链接到站点上的其他页面 我试过这样的方法 data.addColumn({'type':'string', 'role': 'From', 'p': {'html': true} }); 及 但它们似乎不起作用。 感谢您的建议 虽然我使用jQuery和Jav
data.addColumn({'type':'string', 'role': 'From', 'p': {'html': true} });
及
但它们似乎不起作用。
感谢您的建议 虽然我使用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);
});
所以在这一点上,我会在页面加载100毫秒后调用它,这样在加载所有内容时链接都会就位。这工作得很好,链接已加载且可遵循
但是,执行此“刷新”只需重写Sankey并覆盖工具提示功能等其他内容。这就是我决定这只是变得难以控制,并决定追求一种不同的策略
希望这可能会给其他人一些想法,如何与这个最终虽然 虽然我使用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);
});
所以在这一点上,我会在页面加载100毫秒后调用它,这样在加载所有内容时链接都会就位。这工作得很好,链接已加载且可遵循
但是,执行此“刷新”只需重写Sankey并覆盖工具提示功能等其他内容。这就是我决定这只是变得难以控制,并决定追求一种不同的策略
希望这可能会给其他人一些想法,如何与这个最终虽然
$("#svgid").html($("#svgid").html());