【问题标题】:Jquery resets when I refresh the page刷新页面时Jquery重置
【发布时间】:2013-07-12 12:58:41
【问题描述】:

我有一个网站,您可以使用此 jquery 指定页面上应显示的项目:

$('.container h1 a').click(function () {
    $('.container').not($(this).parents()).hide();
    $(this).css({'text-decoration' : 'none',
                'cursor' : 'default'                    
                });
});

但是当我刷新页面时,发生的 jquery 函数被删除了

【问题讨论】:

    标签: javascript jquery refresh


    【解决方案1】:

    得益于浏览器,Javascript 可以在客户端运行。它可以修改当前页面,但任何更改都会在您重新加载页面后立即删除(您从服务器获取其原始内容)。如果您需要将这些更改恢复为“用户首选项”,请使用 PHP cookie 来存储有关每个用户如何更改其界面的信息。这样下次重新加载页面时,可以执行所需的Javascript函数来恢复用户的视图。

    您可以使用 Ajax 从 Javascript 异步存储用户首选项。

    http://www.w3schools.com/ajax/ 这是 W3Schools 的 Ajax 教程,您应该了解一下。 当用户在您的页面上更改他的偏好时,请记住使用 PHP cookie (http://php.net/manual/en/features.cookies.php)。当页面重新加载时,检查 cookie 的内容,并执行必要的 Javascript 函数来恢复用户界面。

    编辑: 不知道http://www.electrictoolbox.com/jquery-cookies/ 允许您在不使用 Ajax 和其他 PHP 脚本的情况下从 jQuery 存储 cookie。 Lars Ebert 的解决方案确实可能更轻松,但总体思路是一样的。

    【讨论】:

    • 我想我已经找到了另一种方法,即在单击刷新时阻止页面刷新。我该怎么做???\
    • 那毫无意义。关闭你的浏览器,明天再来:它不见了。如果浏览器想要刷新一个页面,它会这样做,不管你问什么,因为它只是另一个要发送的 HTTP 请求。您可以使用 onUnload 事件来执行卸载操作,但无论您做什么,浏览器都会执行其任务 :) 停止刷新也将停止关闭:访问我们无法关闭的网站真是太痛苦了。
    • 您不能阻止浏览器刷新页面。它控制您的脚本所做的任何事情,因为它会解释它们。停止页面刷新没有任何意义!
    【解决方案2】:

    css-properties 只是临时修改的。它们不是永久性的,当您刷新页面时它们就会消失。要记住隐藏的元素,您必须使用 cookie。您可以使用此jQuery-plugin 来存储 cookie。

    在这个 cookie 中,您可以在用户每次点击隐藏一个元素时存储隐藏元素的 id。在页面加载时,您只需读取 cookie 并重新隐藏用户隐藏的元素!

    【讨论】:

      猜你喜欢
      • 2012-08-20
      • 2013-07-12
      • 2020-04-19
      • 2015-03-07
      • 2011-12-12
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多