我刚刚学了一点 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 所做的是将内联样式放入<a
#foo 中的 >s 中,使它们成为<a style="color:red;" href="..."
>,我想这将覆盖 :hover 伪类。由于任何人都没有实现伪类的内联样式 attr,所以我怀疑我是否能得到我想要的效果......
仍然,是否有任何解决方案不需要我写类似的东西
$("#foo a").hover(
function(){ $(this).css("color", "black");},
function(){ $(this).css("color", "blue");}
)
?
谢谢。