d3.js svg完全加载后如何执行代码?

问题描述 投票:0回答:1

我使用一个外部库,该库使用d3打印气泡图。我正在用Angular编码。我想覆盖气泡图中一个子组件的onmouseover事件。如果我在控制台中键入此命令,它将起作用:

d3.selectAll('.class1 > text').on("mouseover", function(){alert("Hello");});

[不幸的是,我不知道d3图表完全加载时是否会触发d3中的任何事件(即,气泡图及其所有子组件已在DOM中打印)。特别是,当我在ngOnInit()函数中编写此类代码时,这些组件仍不在DOM中(即它们是undefined),因此不会弹出警报。

我正在寻找某种afterDraw()事件或d3中的某种东西。有什么办法让我可以在component.ts文件中包含这样的代码吗?

javascript angular d3.js nvd3.js
1个回答
0
投票

您是否尝试过首先将mouseover设置为null,然后将其重置。因此,例如:

d3.selectAll('.class1 > text').on("mouseover", null);
d3.selectAll('.class1 > text').on("mouseover", function(){alert("Hello");});
© www.soinside.com 2019 - 2024. All rights reserved.