2014-06-25 151 views
0

我知道悬停状态可以通过css来完成,通常情况下我更愿意接近它们,但是在这种特殊情况下,我将鼠标悬停在有几个孩子的整个元素上,而我尝试拉下来是将所有文字(无论是跨度还是p标签)都变成白色。使用jQuery悬停状态

我在这里有一个codepen http://codepen.io/MARS/pen/jlqxK?editors=101样本的代码,我不知道我是否可以用逗号分隔一次,但我在这个例子中尝试了它。

我有一个范围内的跨度和p标签的组合,我试图目标,但我觉得我没有正确定位所有的元素,这就是为什么文本没有改变到白色的悬停。

目前变成白色的唯一文本是我在css中已经声明的文本。

任何人都可以提出一个更好的方法来做到这一点?

谢谢。

回答

0

与此类似杰克的答案jQuery的变化会使用的东西这样的:递归所选元素

$("#parent").mouseover(function(){ 
    $(this).find("*").addClass('white'); 
}); 

.find("*")目标的所有儿童

+0

这很酷谢谢你,这是一个坚实的解决方案! – MARS

0

你就应该能够做到这一点在你的CSS:

ul.qaUl:hover span.q,p.qP,span.A,p{ 
    color:#fff; 
} 

如果ul.qaUl下一切都应该变成白色,你可以这样做:

ul.qaUl:hover *{ 
    color:#fff; 
} 

显然,这只会工作如果您的选择器足够具体,可以覆盖其他样式。

0

我觉得你的选择应该是这样的:

$('span.q, p.qP, span.genA, p') 

除了这个,你有CSS样式这是通过级联多个专用的,所以你要么必须做的一个具体白色类,或添加重要到分号前的颜色

显然这只有在您的选择器足够具体以覆盖其他样式时才有效。

你也错过了“);”在您的JavaScript结束。

0

你应该是jQuery的悬停或CSS之间进行选择:如果您在使用所有这些改变风格,悬停相同的颜色是会发生冲突

+0

谢谢你的提示,我想我会尝试的jQuery选择尝试新的东西。 – MARS