2012-05-14 34 views
0

我想要使菜單項使得當我點擊菜單項時,活動菜單項的文本顏色應該與懸停效果保持一致。 。我使用了a:active,但它只在打開頁面/內容時纔有效......一旦頁面被打開,它的效果就會丟失。我該怎麼做..?鏈接的顏色應該保持不變,直到點擊菜單中的另一個鏈接並重新恢復其顏色

假設我在「黑」色爲默認菜單項文本顏色,顏色變成「白色」上徘徊,再「黑」時,內容被加載。應該保持「白」,直到我點擊在另一個菜單項上,即'active'菜單項應該保持它的顏色(這應該是所有菜單項的情況)。爲了達到這個效果,我需要做些什麼?

我是新來的JavaScript和jQuery ....

+1

您可以發佈到目前爲止您使用的HTML/CSS/JavaScript嗎?也許建立一個使用jsfiddle.net – cchana

回答

1

如果,當你點擊,頁面重新加載,那麼你就需要以某種方式,在你的後端代碼,添加一個類名(比如「selected」)到選定的元素。然後將相同的CSS規則應用於該元素:hover。

否則,如果你不刷新頁面,並依靠jQuery來維持一個 '選擇' 類型的國家,做這樣的事情:

HTML:

<ul id="menu"> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
</ul> 

的jQuery:

$('#menu li').click(function(){ 
    $('#menu li').removeClass('selected'); // remove selected from any other item first 
    (this).addClass('selected'); //add selected to the one just clicked. 
}); 

CSS

#menu li{color:black;background:white;}  
#menu li:hover, #menu li.selected{  
    color:white;background:black;  
    /* CSS properties here will be applied to both hovered */  
    /* and last-clicked item*/  
}  
+0

球員的例子這不提供解決方案,它將工作只有當沒有重新加載涉及 –

0

應該使用類序列

1-A:鏈路

2-A:訪問

3-A:懸停

4-A:活性

+0

不工作:(而不是什麼用戶問 –

0

感謝您的幫助浮士德,你的解決方案真的爲我工作。儘管一個快速編輯,我認爲在「(this)」前面需要有一個「$」符號,或者至少這對我來說是有效的。所以:

$('#menu li').click(function(){ 
    $('#menu li').removeClass('selected'); // remove selected from any other item first 
    $(this).addClass('selected'); //add selected to the one just clicked. 
}); 
+0

不工作時,頁面重新加載jQuery效果消失: (* –

相關問題