javascript – 在d3选择中复制和插入
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在d3选择中复制和插入,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1286字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 在d3选择中复制和插入](/upload/InfoBanner/zyjiaocheng/810/dd71966b75714689b6ad7560791f45db.jpg)
在d3程序中,我需要获取一个节点(带有d3.selection),然后我想插入相同的svg.
我知道有一些函数,如append和insert,但这些函数适用于新元素.
var node = d3.select("rect#someId"); //node with some attributes and listeners
现在我的var节点获得了以下属性:
{_groups,_parents}
var anotherNode = d3.select("anotherNode").insert(node); //It work but it would be great a similar function or a workaround
注意.我需要保留节点的监听器
解决方法:
使用此功能克隆您的选择:
function clone(selector) {
var node = d3.select(selector).node();
return d3.select(node.parentNode.insertBefore(node.cloneNode(true), node.nextSibling));
}
然后,您可以使用clone(“#foo”)(通过ID)或克隆(“.foo”)(按类)调用它.
下面是一个示例,其中克隆了具有ID“group”的组(一个矩形和一个圆圈)(翻译只是为了更好地查看克隆):
function clone(selector) {
var node = d3.select(selector).node();
return d3.select(node.parentNode.insertBefore(node.cloneNode(true),
node.nextSibling));
}
var copy = clone("#group").attr("transform", "translate(120,100)");
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<svg width="200" height="200">
<g id="group">
<rect x="10" y="10" width="50" height="20" fill="teal"></rect>
<circle cx="35" cy="40" r="20" fill="red"></circle>
</g>
</svg>
PS:这不会克隆听众.此外,这个功能不是我的,它是由博斯托克写的.
内容总结
以上是互联网集市为您收集整理的javascript – 在d3选择中复制和插入全部内容,希望文章能够帮你解决javascript – 在d3选择中复制和插入所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。