1

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

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

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

4

2 回答 2

3

由于浏览器,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 的解决方案确实可能更轻松,但总体思路是相同的。

于 2013-07-14T16:06:17.703 回答
1

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

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

于 2013-07-14T16:08:18.370 回答