有没有办法触发'hashchange'事件,即使哈希相同?



我有一个像这样的事件监听器:

window.addEventListener('hashchange', () => setTimeout(() => this.handleHashChange(), 0));

然后,在这个handleHashChange函数中,我有一些用于滚动到页面上元素的逻辑。考虑到折叠/展开收割台所需的空间。如果我从#mission转到#team,这很好。问题是当我单击#team两次时。由于哈希保持不变,它不会进入事件侦听器,而是返回到默认的浏览器滚动。然后,我的头放在元素的顶部,没有留下足够的空间。有没有办法覆盖它?

可以是jquery或香草JS

如果您想在不直接更改哈希的情况下强制执行hashchcange事件,您应该调用:window.dispatchEvent(new HashChangeEvent("hashchange"))

此处的相关问题

最新更新