Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.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_Html - Fatal编程技术网

Javascript 如何在刷新页面后保留视图更改?

Javascript 如何在刷新页面后保留视图更改?,javascript,html,Javascript,Html,在我的MVC应用程序中,我有一个视图,其中我每10秒刷新一次页面。 我在视图中有一些段落是隐藏的,还有一个按钮使这些段落不隐藏。 问题是,当我点击按钮使段落显示时,页面在10秒内自动重新加载会返回隐藏的段落 这是按钮: <button id="button">Display Internal Sequences</button> 结果是,段落在每次重新加载后返回隐藏。 我想当我点击按钮时,段落即使在重新加载后也不会隐藏 多谢各位 if (show = 'true')

在我的MVC应用程序中,我有一个视图,其中我每10秒刷新一次页面。 我在视图中有一些段落是隐藏的,还有一个按钮使这些段落不隐藏。 问题是,当我点击按钮使段落显示时,页面在10秒内自动重新加载会返回隐藏的段落

这是按钮:

 <button id="button">Display Internal Sequences</button>
结果是,段落在每次重新加载后返回隐藏。 我想当我点击按钮时,段落即使在重新加载后也不会隐藏

多谢各位

if (show = 'true') 
这不是比较,您正在将“show”的值设置为“true”。使用==比较值。

尝试使用jQuery的方法,而不是像这样使用
attr()

$("p1").prop("hidden", false);
prop()
的jQuery文档描述了这两种方法之间的区别,特别是对于像
hidden
这样的布尔属性。还有,这里有一篇关于这个的帖子

注意:在这种情况下,您的页面只会在10秒后重新加载,并且只会刷新一次

如果希望页面每10秒刷新一次,则应使用
setInterval
而不是
setTimeout

<script>
  $(document).ready(function() {
    // If you want the page to refresh constantly, you should use setInterval intead of setTimeout. setTimeout fires only once.
    setTimeout(function () {
        window.location.reload(1);
    }, 10000);

    $("#button").click(function() {
        $("p1").attr("hidden", false);
        localStorage.setItem("show_p1", true);
    });

    if (localStorage.getItem("show_p1") == 'true') {
        $("p1").attr("hidden", false);  
    }
  });
</script>


<p1 hidden style="text-align:center;font-size: 50px; padding:-25px; margin:-25px;">@Html.Label(@Model.CSLine.ModuleOrderInternalSequence > long.MinValue ? @Model.CSLine.ModuleOrderInternalSequence.ToString() : string.Empty)</p1>

<button id="button">Display Internal Sequences</button>

$(文档).ready(函数(){
//如果希望页面不断刷新,应使用setTimeout的setInterval intead。setTimeout只触发一次。
setTimeout(函数(){
窗口。位置。重新加载(1);
}, 10000);
$(“#按钮”)。单击(函数(){
$(“p1”).attr(“隐藏”,假);
setItem(“show_p1”,true);
});
if(localStorage.getItem(“show_p1”)=“true”){
$(“p1”).attr(“隐藏”,假);
}
});
@Html.Label(@Model.CSLine.ModuleOrderInternalSequence>long.MinValue?@Model.CSLine.ModuleOrderInternalSequence.ToString():string.Empty)
显示内部序列

是否因为您在获取本地存储之前要重新加载页面?所以脚本的这一部分永远不会运行?您应该在document ready(文档准备就绪)上显示,而不是在超时中显示-只需让超时执行重新加载,然后在加载页面后,document ready(文档准备就绪)将启动,这样您就可以检查本地存储,然后将可见性设置为该值point@AmiraAbdouli当一个答案解决了你的问题,考虑将它标记为接受,以表明问题已经解决。@ AmiraAbdouli也确保变量“KEY”具有一定的价值。
if (show = 'true') 
$("p1").prop("hidden", false);
<script>
  $(document).ready(function() {
    // If you want the page to refresh constantly, you should use setInterval intead of setTimeout. setTimeout fires only once.
    setTimeout(function () {
        window.location.reload(1);
    }, 10000);

    $("#button").click(function() {
        $("p1").attr("hidden", false);
        localStorage.setItem("show_p1", true);
    });

    if (localStorage.getItem("show_p1") == 'true') {
        $("p1").attr("hidden", false);  
    }
  });
</script>


<p1 hidden style="text-align:center;font-size: 50px; padding:-25px; margin:-25px;">@Html.Label(@Model.CSLine.ModuleOrderInternalSequence > long.MinValue ? @Model.CSLine.ModuleOrderInternalSequence.ToString() : string.Empty)</p1>

<button id="button">Display Internal Sequences</button>