在我的一个项目中,我使用 D3.js 来制作树。一些子节点链接到不同的地方。我试图在用户单击具有 URL 的节点时打开一个弹出窗口。我正在尝试的代码部分是:
e.append("svg:a").attr("target", "E2B").attr("xlink:href", function(a) {
return a.url;
}).append("text").attr("x", function(a) {
return a.children || a._children ? -10 : 10;
}).attr("dy", ".35em").attr("text-anchor", function(a) {
return a.children || a._children ? "end" : "start";
}).text(function(a) {
return a.name;
}).style("fill-opacity", 1E-6)
.on("click",window.open(d.url,'','width=600,height=300'));
使用上面的代码,当我在浏览器中加载项目时,我会在加载时收到一个新的空白弹出窗口。此外,当我单击包含 URL 的子节点之一时,会打开相同的空白弹出窗口。有人可以告诉我我的代码有什么问题吗?
如果您需要,这是我的整个 HTML 代码 - http://pastebin.com/tLZfmEg9
最佳答案
这是我自己解决的工作代码。将问题中给出的代码替换为此代码。
e.append("svg:a").attr("target", "E2B").on("click", function(a){
if( a.url == null){} else {
window.open(a.url,'',"width=800,height=600")}
}).append("text").attr("x", function(a) {
return a.children || a._children ? -10 : 10;
}).attr("dy", ".35em").attr("text-anchor", function(a) {
return a.children || a._children ? "end" : "start";
}).text(function(a) {
return a.name;
}).style("fill-opacity", 1E-6);
关于javascript - 单击 d3.js 中带有 URL 的节点时无法打开弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28817137/