【发布时间】:2012-06-13 21:52:26
【问题描述】:
在backbone.js 中,视图的渲染函数会生成未附加的html,以后可以附加到dom。
目前,我必须在 HTML 中有一个现有目标才能将 svg 附加到。然后我使用数据/输入模式将元素插入到 svg 中。有没有办法让 d3.js 在不将其附加到 dom 的情况下生成 svg?
var svg = d3.select("#target").append('svg')
.attr("viewBox","0 0 100 100");
svg.selectAll("circle")
.data(data)
.enter().append("circle")
.attr("r", 10)
.style("fill", "black");
或者,是否可以为 d3 提供一个未附加的 dom 元素来附加内容?像这样的东西? D3.js 文档建议 select 可以接受节点,但以下对我也不起作用
var svg = d3.select(this.$el).append('svg') // Uncaught TypeError: Object [object Object] has no method 'appendChild'
.attr("viewBox","0 0 100 100");
svg.selectAll("circle")
.data([1,2,3])
.enter().append("circle")
.attr("r", 10)
.style("fill", "black");
【问题讨论】:
-
你试过
d3.selectAll([this.el])吗? D3 可能对 jQuery 对象不满意,它可能想要一个真正的数组。 -
我试过了(不起作用)。顺便说一句,我所指的 d3 文档表明 d3 确实可以很好地与 Jquery 对象配合使用。 github.com/mbostock/d3/wiki/Selections#wiki-d3_select --> "这些方法也可以接受节点,这对于集成第三方库如jQuery或开发者工具很有用"
标签: backbone.js d3.js