在内部链接上,例如#id是否有一个事件被触发,我可以附加一个处理程序?

时间:2012-10-12 11:49:50

标签: javascript jquery html anchor

我有一个网页,上面有各种“内部”链接到各种ID的各种对象。 该网页还具有滚动事件的附件,以在滚动一定量时隐藏/显示某些项目。

我想在点击其中一个链接后页面导航到另一个部分时触发滚动事件处理程序。

点击事件在导航之前被触发,因此我无法附加到该事件,因为它需要根据新位置做出决定。

2 个答案:

答案 0 :(得分:2)

hashchange事件怎么样?现在是widely supported。 (Modernizr有一个测试和很多的polyfills,以防万一...)

顺便说一句,如果你想保存位置,请查看HTML5 History API。 history.pushState应该做的伎俩。

答案 1 :(得分:0)

单击单个页面上的哈希链接时,不会触发“onChange”事件。当代(AJAXed)页面监视哈希更改的唯一方法是使用一个间隔,在该间隔之后调用JavaScript函数来执行该检查。

换句话说,唯一的可能性是及时保存最后一个哈希位置(document.location.hash)并在不满足某些条件的情况下导航回旧位置。