Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅在元素与特定哈希匹配时隐藏该元素?_Javascript - Fatal编程技术网

Javascript 如何仅在元素与特定哈希匹配时隐藏该元素?

Javascript 如何仅在元素与特定哈希匹配时隐藏该元素?,javascript,Javascript,我试图仅在表单位于根站点或特定哈希上时才隐藏该表单。下面的代码导致表单未显示在所有子页面上(/#dos、/#tres等)。有人能帮我理解发生了什么事吗 $(function(){ if (location.hash == "" || location.hash == "#uno"){ $("#form").hide(); } else { $("#form").show(); }; }()); 这是因为您只隐藏了一次表单,但在重新加载页面之前不会

我试图仅在表单位于根站点或特定哈希上时才隐藏该表单。下面的代码导致表单未显示在所有子页面上(/#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;

Jelle Posthuma,当我导航到其他选项卡,然后返回到#uno表时,表单仍然显示