【问题标题】:How to set link visited color in JQuery如何在 JQuery 中设置链接访问的颜色
【发布时间】:2012-07-31 23:52:21
【问题描述】:

如何设置“a”标签的访问颜色。这是我的代码

theobj.find('a:visited').css('color', thejson.WidgetInfo.TextColor);

上面的代码不起作用。我只能使用内联 css。有没有办法做到这一点?

【问题讨论】:

  • 需要更多信息,json.WidgetInfo.TextColor 的值是多少?
  • Oh..thejson.WidgetInfo.TextColor 等于黑色..当我运行程序时,文本是蓝色的
  • 您确定该链接已被访问过吗?

标签: javascript jquery css


【解决方案1】:

您可以构造一个样式标签,然后将其写入页面。

var visited_link_styling = "<style> a:visited{ color:'red'; } </style>";
$('head').append( visited_link_styling );

这可能有点令人沮丧,因为 JavaScript 不擅长多行字符串。

【讨论】:

    【解决方案2】:

    我知道 jQuery 中没有访问过的选择器,但 a similar question 指向一个插件来处理这个 Remy Sharp Visited Plugin

    【讨论】:

      【解决方案3】:

      我建议你有一个 css 类并设置该类,但由于你只能使用内联样式,你可以试试这个

      theobj.find('a').attr("style", "color:#000000 !important");
      

      【讨论】:

        【解决方案4】:

        你实际上不能在一个元素上设置任何属性,这些属性只适用于一些伪选择器,比如visited。 CSS 文档是声明性的,因为您将 CSS 包含在您的文档中,然后规则集才可用。 JavaScript 不是声明式的,而是执行式的,这意味着您只能捕获某些事件然后对其进行响应。换句话说;您可以选择所有访问过的链接并为每个链接设置颜色,但您不能为访问过的链接设置颜色。

        现在,为了实现您想要的,您可以为每个锚点上的点击事件设置一个“实时”事件处理程序,然后相应地应用 CSS。

        出于好奇;为什么不在样式元素或 css 文档中设置规则?

        【讨论】:

        • 感谢您的评论。对于这个特定的项目,不可能使用普通样式表,因为它将在小部件中使用。因此,当小部件放置在远程网站上时,它将应用于整个网站
        【解决方案5】:

        您想使用 jQuery 而不是纯 CSS 是否有原因?访问过的链接的行为应该与未访问过的链接不同吗?

        根据您对上述问题的回答,解决方案会有所不同。

        CSS:

        a:hover { color: #000; }

        jQuery(用于多个链接颜色属性):

        var ele = $("#widget a"); // Replace the desired element/object here
        var eleColor = ele.css('color'); // Grab what the element's color is
        if(eleColor != '#000000' || eleColor != '#000'){ // If it doesn't match X or Y
        ele.css("color","000"); // Set to default color
        }
        

        ^用上面想要的颜色替换。

        或方法2:

        $("#widget a").css("color","000"); // Set all links to #000
        

        或方法3:

        $("#widget a").click(function(){ $(this).css("color","000"); });
        

        工作示例:http://jsfiddle.net/9N5Xe/

        【讨论】:

        • 是的,程序的设置方式..我只能使用内联css。将纯 css 集成到程序中需要很长时间。
        • 这是正确的..我希望所有链接的颜色相同,无论是否访问过。这适用于 MS 资源管理器,但不适用于 Firefox
        猜你喜欢
        • 2013-01-04
        • 2019-06-30
        • 2015-02-10
        • 2010-12-28
        • 1970-01-01
        • 1970-01-01
        • 2013-01-02
        • 2012-05-06
        • 1970-01-01
        相关资源
        最近更新 更多