javascript - 如何仅在匹配特定哈希时隐藏元素?

标签 javascript

我试图仅在根站点或特定哈希 https://www.example.com/#uno 上隐藏表单.我下面的代码导致表单未显示在所有子页面(/#dos、/#tres 等)上。有人可以帮助我了解发生了什么吗?

$(function(){
    if (location.hash == "" || location.hash == "#uno"){
      $("#form").hide();
    } else {
      $("#form").show();
    };
}());

最佳答案

这是因为您隐藏了一次表单,但在重新加载页面之前不会让它重新出现。 (您只检查一次哈希,在加载整个页面时,而不是在哈希更改时。

function showHideForm() {
    if (location.hash == "" || location.hash == "#uno"){
        $("#form").hide();
    } else {
        $("#form").show();
    };
}

window.onhashchange = showHideForm;

关于javascript - 如何仅在匹配特定哈希时隐藏元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45361828/

相关文章:

javascript - Reddit API : How do I convert & to & in Angular/Typescript/Ionic?

javascript - 在响应式设计中将 3 个菜单合并为一个菜单

javascript - 浏览器如何处理 JavaScript?

javascript - 使用相同文件的 Html/JS/PHP 两个页面看起来不同(仅在 chrome 中)

javascript - 使用 Javascript 显示对话框

javascript - 刷新页面并保持滚动位置

javascript - knockout : Create an observable from click binding

javascript - jQuery 中通过数组索引检索元素与each() 函数

javascript - 上滑下滑覆盖按钮点击问题javascript,css

javascript - 在 lakh/crore 系统中将数字转换为单词