【问题标题】:How to trigger an event when hash location changes哈希位置更改时如何触发事件
【发布时间】:2016-07-11 21:48:30
【问题描述】:

我正在尝试使用 onhashchange 方法在我的 url 内的哈希发生变化时触发一个事件。我正在调用它,但它似乎从未被执行。

我尝试了以下方法。

$(function () {
    window.addEventListener("onhashchange", function () {
        alert("Here");
    });

    window.onhashchange = function () {
        alert("Changed");
    }
)};

这些函数没有被调用有什么原因吗?

【问题讨论】:

标签: javascript jquery fragment-identifier


【解决方案1】:

在第一个示例中,您应该写 'hashchange' 而不是 'onhashchange'。

这段代码对我来说很好,至少在 Chrome 中:

window.addEventListener('hashchange', function(e){
    console.log('changed');
})

这里是短代码-sn-p: https://jsfiddle.net/bm8jjwmq/

【讨论】:

【解决方案2】:
if ("onhashchange" in window) {
    alert("The browser supports the hashchange event!");
}

▲ 支持 // ▼ 实现

function locationHashChanged() {
    if (location.hash === "#somecoolfeature") {
        somecoolfeature();
    }
}

window.onhashchange = locationHashChanged;

来源:https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange

【讨论】:

  • 应该是评论
  • 到 OP?我没有足够的声誉来发表评论。为错误的地方道歉。
猜你喜欢
  • 2016-12-28
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多