我有一个网页,上面有各种“内部”链接,指向具有各种 id 的各种对象。该网页还具有滚动事件的附件,以在滚动一定量时隐藏/显示某些项目。
我想在单击这些链接之一后页面导航到另一个部分时触发滚动事件处理程序。
click 事件在导航之前触发,因此我无法附加到该事件,因为它需要根据新位置做出决定。
我有一个网页,上面有各种“内部”链接,指向具有各种 id 的各种对象。该网页还具有滚动事件的附件,以在滚动一定量时隐藏/显示某些项目。
我想在单击这些链接之一后页面导航到另一个部分时触发滚动事件处理程序。
click 事件在导航之前触发,因此我无法附加到该事件,因为它需要根据新位置做出决定。
hashchange事件呢?这些天来,它得到了广泛的支持。(Modernizr 有一个测试和很多 polyfill,以防万一......)
顺便说一句,如果您想保存位置,请查看HTML5 History API。history.pushState 应该可以解决问题。
当您单击单个页面上的哈希链接时,不会触发“onChange”事件。当代(AJAXed)页面监控哈希变化的唯一方法是使用一个间隔,之后调用一个 JavaScript 函数来进行检查。
所以换句话说,唯一的可能性是及时保存最后一个哈希位置(document.location.hash
),如果不满足某些条件,则导航回旧位置。