在 D3 v6 中无法在鼠标悬停时获取节点数据
问题:
在 D3 中v6,当使用selection.on()为节点添加mouseover事件监听器时,返回的是事件数据而不是节点的数据。如何获取数据?
答案:
D3v5 及更早版本:
在 D3 v5 及更早版本中,以下模式用于定义事件侦听器:
selection.on("eventType", function(d, i, nodes) { .... })
其中 d 是触发事件的元素的数据,i 是其索引,nodes 是当前元素组。可以使用 d3.event 访问事件信息。
D3v6:
在 D3 v6 中,事件监听器模式已更改为:
selection.on("eventType", function(event, d) { .... })
现在,事件作为第一个参数直接传递给监听器,而数据是第二个参数。 d3.event 已被移除。
使用 d3.select(this)
在事件监听函数中,仍然可以使用 d3.select(this) 来选择触发元素,即使在 D3 v6 中也是如此。但是,当使用箭头函数时,这将具有不同的范围。
定位:
获取事件的 x,y 位置,该位置之前使用d3.mouse(this),您现在可以使用 d3.pointer(event)。要直接访问 x 和 y 属性,请使用 event.x 和 event.y 而不是 d3.event.x 和 d3.event.y。
示例:
以下示例展示了如何将事件和数据传递给 D3 v6 中的事件侦听器函数:
const svg = d3 .select("body") .append("svg"); svg .selectAll("rect") .data([1, 2, 3]) .enter() .append("rect") .attr("width", 30) .attr("height", 30) .attr("x", function (d) { return d * 50; }) .on("click", function (event, d) { console.log(d); console.log(d3.pointer(event)); });
以上是如何在 D3 v6 中通过鼠标悬停来访问节点数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载
最流行的的开源编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1
好用且免费的代码编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能