jQuerywindow.location.hash烦恼

jQuery window.location.hash troubles

我有一个单页滚动类型的网站,它使用滚动捕捉插件从一个部分捕捉到下一个部分。当滚动到每个部分时,哈希会发生变化(#1、#2、#3 等)。

我想使用散列变化来触发动画。所以在测试我写的函数的时候,只有在页面刷新的时候才起作用。我不能 post 网站本身,因为它是本地的,但这是代码。

JS:

$(document).ready(function () {

//Trigger an animation based on hash location/URL
function hashChange() {
    alert("hashChange works!");
};
var hash = window.location.hash;
if (hash === '#3') {
    hashChange();
};

});

如有任何帮助,我们将不胜感激。


=======


更新:

这是我更新后的代码。但现在它会在每次哈希更改时运行(#1、#2、#3、#4)。

function hashChange() {
    alert("hashChange works!");
};
window.addEventListener('hashchange', hashChange);
var hash = location.hash;
if (hash === '#3') {
    hashChange();
};

有人知道怎么指定吗?它也是一个单页滚动,可在您滚动时捕捉到各个部分。当您从部分滚动时,哈希会发生变化,但它不会触发我写的警报。

求助!

您可以为 hashchange 事件注册事件侦听器。

你的情况:

function hashChange() {
  alert('hashChange works!');
}
window.addEventListener('hashchange', hashChange);