【发布时间】:2010-10-03 22:10:19
【问题描述】:
我刚刚学了一点 jQuery,并试图用它来实现简单的变色效果。假设我有两个<div>,#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:hover 颜色丢失了,即当用户将光标移到链接上时,它们将保持红色,而不是像我预期的那样变成黑色。
因为我看到 jQuery 所做的是将内联样式放入 #foo 中的 <a>s,使它们成为 <a style="color:red;" href="...">,我想这将覆盖 :hover 伪类。由于任何 afaik 都没有实现伪类的内联样式 attr,我怀疑我是否能得到我想要的效果......
不过,有没有不需要我写类似的解决方案
$("#foo a").hover(
function(){ $(this).css("color", "black");},
function(){ $(this).css("color", "blue");}
)
?
谢谢。
【问题讨论】:
-
这个问题确实应该得到更好的答案,因为标题和接受的答案不匹配。
标签: jquery css pseudo-class