如果元素与特定哈希匹配,如何隐藏它?

时间:2017-07-27 22:09:34

标签: javascript

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

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

1 个答案:

答案 0 :(得分:4)

这是因为您隐藏了一次表单,但在重新加载页面之前,您不会重新显示该表单。 (您只在加载整个页面时检查一次哈希,而不是在哈希值发生变化时检查。

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

window.onhashchange = showHideForm;