gpt4 book ai didi

javascript - d3.js,点击 Action 到另一个带有朝阳变量数组的URL编码

转载 作者:可可西里 更新时间:2023-10-31 22:54:40 24 4
gpt4 key购买 nike

我做了 sequences sunburst visualization并希望为每个路径添加一个链接。

我读过类似的问题 d3.js, click to link to another URL encoded with variables并可以根据特定路径的变量建立链接。 (见下面的代码)此代码可能会生成类似“http://somelink.com/link.php?id1=CurrentNode”的 url。

但是,我想使用层次结构信息生成类似“http://somelink.com/link.php?id1=CurrentNode&id2=ParentNode”的 url。

我不太了解javascript,所以我需要帮助。

// Main function to draw and set up the visualization, once we have the data.
function createVisualization(json) {

// Basic setup of page elements.
initializeBreadcrumbTrail();
drawLegend();
d3.select("#togglelegend");

// Bounding circle underneath the sunburst, to make it easier to detect
// when the mouse leaves the parent g.
vis.append("svg:circle")
.attr("r", radius)
.style("opacity", 0);

// For efficiency, filter nodes to keep only those large enough to see.
var nodes = partition.nodes(json)
.filter(function(d) {
return (d.dx > 0.005); // 0.005 radians = 0.29 degrees
});

var path = vis.data([json]).selectAll("path")
.data(nodes)
.enter().append("svg:path")
.attr("display", function(d) { return d.depth ? null : "none"; })
.attr("d", arc)
.attr("fill-rule", "evenodd")
.style("fill", function(d) { return colors[d.name]; })
.style("opacity", 1)
.on("mouseover", mouseover)
.on("click", function(d) {
var url = "http://somelink.com/link.php?id1=";
url += d.name;
$(location).attr('href', url);
window.location = url;
});

// Add the mouseleave handler to the bounding circle.
d3.select("#container").on("mouseleave", mouseleave);

// Get total size of the tree = value of root node from partition.
totalSize = path.node().__data__.value;
};

我弄清楚了如何为三级森伯斯特制作 url。为了根据旭日的等级获得值(value),我对 Lars 的建议进行了少量修改。

     .on("click", function(d) {
var url = "http://somelink.com/link.php";
if (d.depth== 1) {
 url += "?id1=" + d.name;
}
if (d.depth== 2) {
 url += "?id1=" + (d.parent ? d.parent.name : "");
 url += "&id2=" + d.name;
}
if (d.depth== 3) {
 url += "?id1=" + (d.parent.parent ? d.parent.parent.name : "");
 url += "&id2=" + (d.parent ? d.parent.name : "");
 url += "&id3=" + d.name;
}
$(location).attr('href', url);
window.location = url;
});

最佳答案

朝阳布局的节点有一个属性 .parent 包含父节点(或根节点为 null)。您可以像这样在代码中直接使用它:

.on("click", function(d) {
var url = "http://somelink.com/link.php?id1=" + d.name +
"?id2=" + (d.parent ? d.parent.name : "");
$(location).attr('href', url);
window.location = url;
});

关于javascript - d3.js,点击 Action 到另一个带有朝阳变量数组的URL编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23385354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com