如何使用jquery更改标签上的永久颜色?

时间:2012-04-30 06:54:56

标签: javascript jquery html css

点击按钮,我的.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" });

如果我关闭我的网络应用程序或只是刷新它,颜色就会消失。即使我关闭或刷新,我怎样才能使颜色永远保持不变我是否需要添加类或其他东西?

5 个答案:

答案 0 :(得分:2)

好的,如此简短的回答:你不能

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

因此,除非您希望用户能够自由修改您的服务器文件(这是一个非常糟糕的想法),否则您实际上无法做到您想要的......

HTH。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

我假设您正在使用jQuery,因此您可以尝试

$.cookie("colorSet", "true", { expires: 7 });
您可以再次检查页面的

和onLoad方法

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

再次进行更改。

答案 4 :(得分:-1)

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

$(".navigation").onclick{function(){
        $(".class_name").addClass(); 
    }
)};