我创建了一个标记以显示在线元素的末尾。但我的问题是,当动态生成标记标签时,它不会显示在行尾。
我所做的是首先我将 svg 附加到 html 正文。
var svg = d3.select('body').append("svg").attr("width", 300).attr("height", 300).attr("id", "cloud");
然后我将标记附加到svg。
$('svg').append('<defs><marker id="arrow" viewbox="0 -5 10 10" refX="18" refY="0"markerWidth="6" markerHeight="6" orient="auto"><path d="M0,-5L10,0L0,5Z"></marker> </defs>');
然后我将行附加到 svg,属性 marker-end 指向 svg 标记元素。
svg.append("g").selectAll("line.link")
.data(force.links())
.enter().append("line")
.attr("class", "link")
.attr("marker-end", "url(#arrow)");
行尾不显示标记。这是 jsfiddle http://jsfiddle.net/2NJ25/2/中该代码的链接
但是,当我使用 jquery 删除动态附加并在 html 中定义标记标记时,就像下面的代码一样,这里的链接是http://jsfiddle.net/AqK4L/4/
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Cloud</title>
<script type="text/javascript" src="d3.v2.js"></script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<svg id="cloud" width="800" height="600">
<defs>
<marker id="arrow" viewbox="0 -5 10 10" refX="18" refY="0"
markerWidth="6" markerHeight="6" orient="auto">
<path d="M0,-5L10,0L0,5Z">
</marker>
</defs>
</svg>
<link href="cloud.css" rel="stylesheet" type="text/css" />
<script src="cloud.js" type="text/javascript"></script>
</body>
</html>
当我动态生成标记标签时有什么问题。为什么不显示标记?我想动态生成标记标签。这该怎么做?