为什么 div 在 url 更改时不显示?

Why doesn't the div show when the url changes?

我正在尝试让某些 <div> 在 url 具有特定哈希值时显示。到目前为止,它在我从不同页面导航时有效,但在我从同一页面单击时无效。

示例:如果我在第 1 页并单击转到 /page2#hash1,则链接到 hash1 的 div1 将显示在第 2 页(所有 <div> 最初都是隐藏的).但是如果 url 当前是 /page2#hash1 并且我想跳转到同一页面上的 #hash2 , url 将变为 /page2#hash2div2不会出现,div1不会消失。

这是我尝试使用的代码:

if (window.location.href.indexOf('#hash1') > -1){
    $('.div1').slideToggle();
} else if(window.location.href.indexOf('#hash2') > -1 ) {
    $('.div2').slideToggle();
}

使用 onhashchange 事件触发你的函数

window.onhashchange  = function(){
  if (window.location.href.indexOf('#hash1') > -1){
            $('.div1').slideToggle();
        }
        else if(window.location.href.indexOf('#hash2') > -1 ) {
            $('.div2').slideToggle();
        }

}

JSFiddle 照顾@HaukurHaf