0

单击按钮时,我的 .Post() 中有以下代码:

if (Comment != null && Grade > 0) {
    $("navigation").attr('a[data-id="' + QuestionID + '"]')
                   .css({ "background-color": "green" });
} else if (Comment == null && Grade == null) {
    $('a[data-id="' + QuestionID + '"]').css({ "background-color": "#D8D8D8" });

如果我关闭我的 web 应用程序或只是刷新它,颜色就消失了。即使我关闭或刷新,如何使颜色永远保持不变我必须添加类或其他东西吗?

4

5 回答 5

2

好的,那么简短的回答:你不能

长答案: CSS 文件存储在远程服务器上并根据请求提供(通过<link />HTML 文档头部的标签)。JavaScript 在您的本地计算机上的浏览器中执行(除非您正在运行 node.js,我想)。因此,只要该特定脚本实例/页面视图正在运行,您的更改就存在。重新加载页面会重新请求(取决于缓存设置)CSS 文件并重新加载它。

因此,除非您希望用户能够自由修改您的服务器文件(一个非常糟糕的主意),否则您真的无法做您想做的事……

HTH。

于 2012-04-30T07:10:37.110 回答
1

将此代码移至 javascript 函数,例如函数 colorChange() 并调用此函数 onLoad() 和 onClick()(按下按钮时)。

于 2012-04-30T06:58:31.373 回答
1

我认为你必须找到一种方法来永久标记它,比如添加一个类,因为这样你就可以编辑你的 CSS 并且它已经解决了。
我想你是想发表评论?在服务器端代码中添加该类或其他内容。

于 2012-04-30T07:05:55.413 回答
1

您需要将颜色状态保存在浏览器 cookie 中,否则您无法处理页面刷新。将颜色更改保存在 cookie 中,并添加 onLoad 处理程序,该处理程序应检查 cookie 是否存在并相应地标记更改

我假设您使用的是 jQuery,因此您可以尝试

$.cookie("colorSet", "true", { expires: 7 });

和您页面的 onLoad 方法,您可以再次检查

$.cookie("colorSet") == "true" 

再次进行更改。

于 2012-04-30T07:11:21.617 回答
-1

在 jquery 中,您可以在单击功能完成后添加一个类:

$(".navigation").onclick{function(){
        $(".class_name").addClass(); 
    }
)};
于 2012-04-30T07:06:12.693 回答