javascript - 单击 d3.js 中带有 URL 的节点时无法打开弹出窗口

标签 javascript d3.js

在我的一个项目中,我使用 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/

相关文章:

javascript - Svg 文本元素被另一个 svg 元素重叠

javascript - d3.js 中的可缩放时间序列

javascript - 切换路由时 React Router Kepps css

javascript - 尝试使用 cors 获取请求的资源上不存在 'Access-Control-Allow-Origin' header 来访问 google contacts api

javascript - 在网页上显示弹出数据的正确方法?

javascript - 如何在使用 dimple.js 制作的图表的标签中添加空格?

javascript - 过滤json数据然后使用d3.nest

javascript - D3 V5树链接源位置不正确

javascript - 为什么我的 X(时间)轴上没有刻度?

javascript - 如何将十六进制字符串转换为数字?