如何在页面重新加载后显示隐藏的div?

时间:2017-02-09 17:12:50

标签: javascript jquery html css3

我要求点击按钮时页面需要重新加载。重新加载后我需要显示隐藏的div。

下面是我描述我的问题的要求?

1.在我的html代码中包含一些文本和按钮,在这个页面中,默认情况下我隐藏了一些文本div 2.当我点击按钮时我正在重新加载页面。在重新加载页面后我想要显示隐藏的div

<!DOCTYPE html>
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script>
      $(document).ready(function(){
        $("#test2").css("visibility","hidden");
        alert("reloaded");

        $("#p1").click(function(){

          setTimeout(function(e){
            alert("inside time out");
            $("#p2").css("visibility","visible");
          },3000);
          location.reload();

        });    
      });
    </script>
  </head>
  <body>

    <div id="myDiv">
      <p id="p1">This is sample text</p>
    </div>

    <div id="test2">

      <p id="p2">this is invisible text</p>
    </div>

  </body>
</html>

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以在用户点击按钮时设置localStorage项,并在页面加载时查找localStorage项并有条件地显示隐藏的div。

var $hidden = $('.hidden');

localStorage.getItem('show') && $hidden.show();

$('button').on('click',function() {
  localStorage.setItem('show',true);
  window.location.reload(false); 
})
.hidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hidden">hidden</div>
<button>click</button>

答案 1 :(得分:1)

首先,如果您要求点击按钮,则需要一个按钮,而不是段落。

接下来,使用visibility(没有显示),而不是display属性(仍然在页面上为元素分配空间),使用$(document).ready(function(){ // Check to see if this is a page reload or not by seeing if a value was placed // into localStorage from a previous page load if(localStorage.getItem("loadedEarlier")){ // Page has already loaded earlier $("#test2").css("display","block"); } $("#btn").click(function(){ location.reload(); }); // Place a value into localStorage localStorage.setItem("loadedEarlier", "yes") });

最重要的是,如果您重新加载文档,那么您拥有的任何本地变量都将丢失。你需要坚持某种&#34; flag&#34;页面加载之间。这可以通过多种方式完成(cookies,sessionStorage,localStorage,服务器端),但 localStorage 可能是最简单的。

由于沙盒,此代码实际上无法在Stack Overflow代码段环境中运行,但您可以看到 here 的工作版本。

见内联其他评论:

&#13;
&#13;
/* No need for JavaScript to initially hide the element which
   can cause the usre to see it momentarially before the JS runs.
   Set its default display to none instead.                      */
#test2 { display:none; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="btn">Click to Reload</button>
<div id="test2"><p id="p2">this is invisible text</p></div>
&#13;
import java.lang.*;

public class DataMatrix {

    private double[][] dMatrix; 

    public DataMatrix(String text) {

        String[] line = text.split("\n");
        // Creates an array for the CSV file
        String[][] sMatrix = new String[line.length][];

        for(int i=0; i < line.length; i++)
            sMatrix[i] = text.split(",");
        System.out.println("Original String: ");

        for(int x=0; x < sMatrix.length; x++) {
            for(int j=0; j <= line.length; j++) {
                System.out.println(sMatrix[x][j]);
            }
        }

        double[][] dMatrix = new double[sMatrix.length][];
        System.out.println("Converted to double: ");

        for(int x=0; x < sMatrix.length; x++) {
            dMatrix[x] = new double[sMatrix[x].length];
            for(int j=0; j <= sMatrix.length; j++) {

                dMatrix[x][j] = Double.parseDouble(sMatrix[x][j]);
                System.out.println(dMatrix[x][j]);
            }
        }
    }
}
&#13;
&#13;
&#13;