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

How can I change a color permanent on a tag with jquery?

本文关键字:颜色 标签 何使用 jquery      更新时间:2023-09-26

单击按钮时,我的.帖子():

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 应用程序或只是刷新它,颜色就会消失。即使关闭或刷新,如何使颜色永远保持 我必须添加类或其他东西吗?

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

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

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

呵。

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

我认为

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

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

我假设你正在使用jQuery,所以你可以尝试

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

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

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

再次进行更改。

在 jquery 中,你可以在 click 函数完成后添加一个类:

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