我正在尝试让某些<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();
}
答案 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