【发布时间】:2020-06-27 10:58:21
【问题描述】:
我有一个这样的事件监听器:
window.addEventListener('hashchange', () => setTimeout(() => this.handleHashChange(), 0));
然后在这个handleHashChange 函数中,我有一些用于滚动到页面元素的逻辑。考虑到它需要为折叠/展开标题留下的空间。
如果我从#mission 转到#team,这可以正常工作。问题是当我点击两次#team 时。由于哈希值保持不变,它不会进入事件侦听器并回退到默认浏览器滚动。然后我最终将标题放在元素顶部,没有留下足够的空间。
有没有办法覆盖它?
可以是 jquery 或者 vanilla JS
【问题讨论】:
-
如果哈希值相同,那么即使一开始也不是哈希更改。感觉就像你遇到了一个 XY 问题。
标签: javascript jquery html typescript