当网址发生变化时,为什么不显示div?

时间:2015-01-11 21:28:02

标签: javascript jquery url relative-path relative-url

我正在尝试让某些<div>显示在网址有特定哈希时。到目前为止,它在我从不同的页面导航时起作用,但是当我从同一页面点击时它不起作用。

示例:如果我在第1页上并点击转到/page2#hash1,则链接到hash1的div1将显示在第2页(所有<div>最初都是隐藏的)。但如果网址目前为/page2#hash1,并且我想在同一页面上跳转到#hash2,则网址将更改为/page2#hash2,但div2将不会显示,div1 1}}不会消失。

以下是我尝试使用的代码:

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

1 个答案:

答案 0 :(得分:3)

使用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