javascript jquery保持隐藏/删除页面刷新后

时间:2017-03-09 06:36:40

标签: javascript php jquery html

当我点击用户点击下拉菜单时,我正试图隐藏或删除一些html元素。

我已经尝试过:

$("#notif").click(function(){
$("#count").remove();
});

但问题是当用户刷新页面时,会再次显示#count元素。 如何在用户登录时保持隐藏#count甚至刷新页面并在用户重新登录时再次显示 我对javascript知之甚少。

我可以在javascript / jquery中执行此操作吗?或者我应该保持PHP会话的价值吗?。

6 个答案:

答案 0 :(得分:0)

这很简单。

@ViewChild('countryTable') public countryTable: any;

ngAfterViewInit() {
    var b = this.countryTable.el.nativeElement.querySelectorAll('button');
    console.log(b);
}

将上面的代码放在javascript文件或脚本标记中。

答案 1 :(得分:0)

<?php
if(!isset($_SESSION["session_name"]))
{
$_SESSION["session_name"]='';
}
?>
<script>
var session=<?php echo $_SESSION["session_name"]; ?>;
if(session!='')
{
$("#count").hide();
}
</script>

答案 2 :(得分:0)

//one option
$(document).ready(function(){
   $("#count").hide();  
});
//second option
$(document).ready(function(){
   $("#count").remove();  
});
//third option
$(document).ready(function(){
   $("#count").css("display","none");  
});

答案 3 :(得分:0)

我正在使用jQuery插件(jQuery cookies),你可以从中获得相同的结果 https://github.com/js-cookie/js-cookie

首先,当用户点击

中的按钮时设置Cookie
$(function() {
    if (Cookies.get('RemoveCount') == 'true' && Cookies.get('RemoveCount') != 'undefined') {
        $("#count").hide();
    } else {
        $("#count").show();
    }
}

然后在您的网页上,您可以查看此内容

<html>
<head>
<script
  src="https://code.jquery.com/jquery-3.1.1.min.js"
  integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
  crossorigin="anonymous"></script>
<script src="../js.cookie.js"></script>
</head>
<body>
    <button id='clckced'> removeCount</button>
    <div id="RemoveCount">
    This should be removed.
    </div>
    <script>
        $(function(){
            if (Cookies.get('RemoveCount') == 'true' && Cookies.get('RemoveCount') != 'undefined' ){
                $("#RemoveCount").hide();
                } else {
                    $("#RemoveCount").show();
                }
            $('#clckced').click(function(){
                Cookies.set('RemoveCount', 'true');
                $("#RemoveCount").hide();
            })
        });
    </script>

</body>
</html>

Cookies.remove('RemoveCount');

在用户注销时删除Cookie ...

int position = getIntent().getExtras().getInt("pos");

答案 4 :(得分:0)

我也是这样尝试的

$("#notif").click(function(){
$("#count").remove();
});

我使用会话存储,它存储在客户端幻灯片中

检查此链接:

http://jsfiddle.net/h4JXs/5300/

答案 5 :(得分:-1)

您还可以使用sessionStorage(或localStorage)来记住点击。

每次加载页面时,首先检查存储以检查用户是否单击了。如果是这样,#count将被删除。

当用户点击#notif时,删除#count元素,并将信息保存到存储中,以便下次加载页面时可以再次删除。

sessionStorage将在浏览器窗口或选项卡打开时在本地保存信息。 localStorage将永久保存,直到明确删除。

在这个问题中,您对localStorage,sessionStorage,cookies和session之间的区别进行了很好的讨论:What is the difference between localStorage, sessionStorage, session and cookies?

在您的情况下,我认为最合适的解决方案是sessionStorage(或localStorage,具体取决于您希望信息的持续程度),因为不需要将此信息发送到服务器。

<html>
  <head>
    <script
       src="https://code.jquery.com/jquery-3.1.1.min.js"
       integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
       crossorigin="anonymous"></script>
  </head>
  <body>
    <button id='notif'> removeCount</button>
    <div id="count">
      This should be removed.
    </div>
    <script>
      window.onload = function() {
        if (window.sessionStorage && window.sessionStorage.getItem('removeCount') == 'true' ) {
          $("#count").remove();
        } 

        $('#notif').click( function() {
          if (window.sessionStorage) {
            window.sessionStorage.setItem('removeCount', 'true');
            $("#count").remove();
          }
        });
      }
    </script>

  </body>
</html>