2014-06-25 157 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