如何让浏览器的“后退”按钮清除d3.js可视化的先前状态?

时间:2012-07-31 23:38:46

标签: javascript charts d3.js transitions demo

我正在使用D3从饼图布局和弧线开发“Radial Hub and Spoke Chart”(a.k.a。“Radial Wheel”)。我已经设置了轮子以启用所有带有HTML链接的弧和节点,这些都可以正常工作。我还设置了轮子以使用鼠标悬停事件来改变弧和节点的颜色。

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

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

1 个答案:

答案 0 :(得分:1)

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

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