小编use*_*696的帖子

如何使用d3.js获取parentNode的索引

使用d3.js,我之后(比如说)父节点的某个值x,我会使用:

d3.select(this.parentNode).datum().x
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是数据(即数据)索引.建议?

谢谢!

dom d3.js

3
推荐指数
1
解决办法
5023
查看次数

如何在 d3.js 转换中正确更新输入元素的文本值

我一直在尝试,一步一步地,在 d3.js 可视化中为动态动画转换一些非常漂亮但静态和非 d3 的代码

(虽然与这个问题没有直接关系,但原始代码“只是”-haha- 接受用户提供的和弦名称,例如“Amaj7”,将其分解为组件音符并显示相关波形。我正在尝试创建一个基于和弦名称数组的过渡驱动动画。)

就我而言,对于实现的每次成功的代码更新(到 d3.js 友好版本),源代码都被保存起来作为与下一个的工作比较。

在代码的当前更新中,我在尝试合并转换时遇到了一个小故障。转换本身得到了很好的证明,并且(通过日志记录)可以看到按预期触发。

在转换期间,所需的属性值更改(要处理的下一个和弦名称以及立即转换的目标)失败。将以前的(工作)版本与当前版本进行比较:

初始创建,两者通用,但在一个单独的文件中,因此元素只能通过 DOM 访问

var input = container
.append("input")
.attr("class", wavebase.animation_type + "_input")
.attr("id", "chordinput")
.attr("type", "text")
.attr("value","Amaj7");
Run Code Online (Sandbox Code Playgroud)

老的

var input = document.getElementById('chordinput');

input.addEventListener('change', inputChanged, false);
inputChanged.call(input);
Run Code Online (Sandbox Code Playgroud)

和(过渡前):

input.setAttribute("value", (waveplot.chordname + "\x0A")); 
inputChanged.call(input);
Run Code Online (Sandbox Code Playgroud)

让我们明确一点:上述工作

新的

var input = container
.select("#chordinput")

input.on('change', inputChanged, false);
inputChanged.call(input);
Run Code Online (Sandbox Code Playgroud)

后来,既不是这个:

input
.transition()
.text(function() {
    return (waveplot.chordname + "\x0A");
})
Run Code Online (Sandbox Code Playgroud)

..也不是这个:

input
.transition()
.attr("value", function() {
    return (waveplot.chordname + …
Run Code Online (Sandbox Code Playgroud)

javascript events input transitions d3.js

2
推荐指数
1
解决办法
7197
查看次数

标签 统计

d3.js ×2

dom ×1

events ×1

input ×1

javascript ×1

transitions ×1