我制作了散点图,并希望为每个点添加一个链接。
chart.selectAll("scatter-dots")
.data(data)
.enter().append("circle")
.attr("cx", function (d) { return x(d.position[0]); } )
.attr("cy", function (d) { return y(d.position[1]); } )
.attr("r", 4)
.style("fill", "#666")
.style("opacity", 0.5)
.on("click", function(){
var url = "http://somelink.com/link.php?id=";
url += d.link_id;
//$(location).attr('href', url);
//window.location = url;
});
如果我只是把纯String链接如 window.location =“http://stackoverflow.com” 但是,如果我从变量向URL的末尾添加查询,则页面不会重定向。
jquery和javascript都没有工作(如评论。)
我还尝试过外部js文件,但仍然失败。
这是在PHP文件中,如果这有帮助。
答案 0 :(得分:7)
如果它适用于静态字符串,则d.link_id出现问题。尝试通过alert(d.link_id)
或使用萤火虫或类似物来console.log(d.link_id)
看看里面有什么。
或者,您应该使用真正的锚点来链接节点而不是设置点击事件。这就像... ...
chart.selectAll("scatter-dots")
.data(data)
.enter()
.append("a")
.attr("xlink:href", function(d) {return "http://somelink.com/link.php?id=" + d.link_id})
.append("circle")
.attr("cx", function (d) { return x(d.position[0]); } )
.attr("cy", function (d) { return y(d.position[1]); } )
.attr("r", 4)
.style("fill", "#666")
.style("opacity", 0.5)
(我似乎无法回想起这是否是这样做的确切方法,您可能需要将锚点保存在变量中,然后将圆圈附加到它们。)