如何让浏览器的"back"按钮清除 d3.js 可视化的先前状态?



我正在使用D3从饼图布局和圆弧中开发"径向轮毂和轮辐图"(也称为"径向轮")。我已经设置了轮子,以启用所有具有HTML链接的弧和节点,这些链接都可以正常工作。我还将轮子设置为使用鼠标悬停事件来更改圆弧和节点的颜色。

问题是,当我将鼠标悬停在一个元素上并单击它转到它所指向的HTML页面时,点击浏览器的"后退"按钮返回D3可视化并不能清除鼠标悬停的最后状态。更具体地说,如果我将鼠标悬停在弧上,.on(mouseover…)事件会调用一个函数将弧变为深蓝色。然后,我点击弧形转到它链接的页面。当我点击浏览器的"后退"按钮返回可视化时,弧形仍然是深蓝色,而不是返回到原始颜色。

有没有一种简单干净的方法来解决这个问题?

您是否考虑过在.on(单击)中重置样式?如果您使用CSS类来更改颜色,这可能是最简单的。不错的图表,顺便说一句

更新:我无法使用Chrome、Firefox或Safari中提供的链接再现此行为。它总是在浏览器返回时返回到原始颜色。

最新更新