javascript - 为什么当 url 改变时 div 不显示?

标签 javascript jquery url relative-path relative-url

我正在尝试确定 <div>当 url 具有特定哈希值时显示。到目前为止,当我从不同页面导航时它可以工作,但当我从同一页面单击时它不起作用。

示例:如果我在第1页,点击转到/page2#hash1然后div1链接到 hash1 将显示在 page2 上(所有 <div> 最初都是隐藏的)。但如果 url 当前是 /page2#hash1我想跳到#hash2在同一页面上,网址将更改为 /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

关于javascript - 为什么当 url 改变时 div 不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892310/

相关文章:

javascript - 获取参数以更改我的 .php 外部 javascript 文件以加载不同的内容

javascript - jQuery - 在 jqueryUI 对话框中获取点击位置

jquery - Bootstrap Carousel - 根本不循环

php - url中的参数怎么写?

css - 无法使用 sass-loader (Webpack) 加载背景图像

数组函数的 JavaScript 运行时复杂度

javascript - Bootstrap Datetimepicker 无法在折叠中工作

jquery - 如何选择具有特定 id 的父级的图像元素?

android - 无法从android中的URL获取xml文件

javascript - 减少函数额外括号的含义 - JS