当前位置:  开发笔记 > 编程语言 > 正文

使用jQuery的CSS伪类

如何解决《使用jQuery的CSS伪类》经验,为你挑选了1个好方法。

我刚刚学会了一点jQuery,并试图将它用于简单的变色效果.假设我有两个> s,#foo和#bar.#foo有很多URL,并定义了以下CSS:

#foo a {color: blue; border-bottom: 1px dashed blue}
#foo a:hover {color: black; border-bottom: 1px solid black}

现在我想在用户单击#bar时更改#foo中链接的颜色(a:link),但保持a:hover颜色不变,所以我写这样的函数:

//...
$("#bar").click(function () {
  $("#foo a").css("color", "red");
});
//...

问题是,虽然此功能确实将所有链接更改为红色,但是a:悬停颜色丢失,即当用户将光标移动到链接时,它们将保持红色,而不是像我预期的那样变黑.

因为我看到jQuery所做的是在#foo中将内联样式放到> s中,使它们成为>,我想这将覆盖:hover伪类.由于伪类的内联样式attr还没有被任何人实现,我怀疑我是否可以完全达到预期的效果......

还有,有什么解决方案不要求我写这样的东西

$("#foo a").hover(
    function(){ $(this).css("color", "black");},
    function(){ $(this).css("color", "blue");}
)

谢谢.



1> David Diez..:

从Javascript设置CSS伪类规则中提取

实际上,您可以在悬停时使用以下内容更改类的值:使用javascript更改您想要的伪类:

$(document).ready(function()
{
    var left = (($('.selected').width() - 7) / 2) + 'px';
    document.styleSheets[1].insertRule('.selected:after { left: ' + left + '; }', 0);
    document.styleSheets[0].cssRules[0].style.left = left;
});

我希望这可以帮助任何人.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有