为什么 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#hash2
但 div2
不会出现,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
我正在尝试让某些 <div>
在 url 具有特定哈希值时显示。到目前为止,它在我从不同页面导航时有效,但在我从同一页面单击时无效。
示例:如果我在第 1 页并单击转到 /page2#hash1
,则链接到 hash1 的 div1
将显示在第 2 页(所有 <div>
最初都是隐藏的).但是如果 url 当前是 /page2#hash1
并且我想跳转到同一页面上的 #hash2
, url 将变为 /page2#hash2
但 div2
不会出现,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