javascript - 鼠标悬停不能用作箭头功能?
问题描述
我有以下功能:
.on("mouseover", function(d, i) {
d3.select(this)
.attr("fill", "red");
})
但是,我想尝试将它写成箭头函数,所以我找到了这个教程并得到了这个:
.on("mouseover", (d, i, nodes) => {
d3.select(nodes[i])
.attr("fill", "red");
})
但是,每当我尝试运行它时,我都会不断收到一条错误消息TypeError: undefined is not an object (evaluating 'nodes[i]')
。
我也尝试过替换nodes
并只是调用this
,但似乎无论我尝试什么,箭头函数在这里都不起作用。我觉得这不应该是版本问题,因为我使用的是 d3 的 v7。谁能解释这里的问题是什么?
提前致谢!
解决方案
我想到了。根据这个讨论,显然从 v6 开始,上面链接中提供的箭头函数解决方案不再可能
所以现在当前的解决方案是:
.on("mouseover", (d) => {
d3.select(d.currentTarget)
.attr("fill", "red");
})
推荐阅读
- virtual-machine - 虚拟化特定环境(CPU、缓存、时钟)
- node.js - 如何使用nodejs读取内存中的targz文件夹
- lua - 使用 Love2d 在 Atom 编辑器中运行“Hello World”的语法错误
- python - 在 Pandas、Numpy 和 Tensorflow 中将二维变量转换为一维变量
- c# - 在 UWP C# 中从没有 MediaComposition 的 SoftwareBitmap 或 Direct3DSurface 创建视频文件
- google-apps-script - Google表格中的边框条件格式(满足多个条件)
- javascript - 如何获取d3.select的父节点
- javascript - 过滤具有可选值的对象数组
- angular - 如何在 Angular(使用 ngx-owl-carousel-o)中添加动画(如淡入和淡出)?
- permissions - 无法运行 byobu,因为 [root] 不拥有 [/home/ubuntu]