2016-10-12 420 views
0

我在這個問題上掙扎,我想改變我的ul項目的背景顏色,當li被點擊時。 因此,我打開一個下拉菜單,單擊li鏈接,現在我想要mainmenuslot更改其backgroundcolor。改變ul li的背景顏色

我與此代碼的工作:

#mainnav-menu ul li.current_page_item a, #mainnav-menu ul li.current-menu-item a { 
    background-color: #004494; 
    background: #004494; 
    text-decoration: none; 
    color: #ffffff; 
    font-weight: bold; 
} 

我有什麼補充,讓這個功能呢?我嘗試了#mainnav-menu ul a,#mainnav-menu ul以及其他很多可能性。

+0

小提琴請? –

+0

一些相關的HTML代碼可能有幫助!? – Wh1T3h4Ck5

+0

請給我們小提琴鏈接或摘錄 –

回答

1

除了@jacobdo所說的,你只有訪問li焦點和改變li背景,顏色(如下面解釋)等等的可能性,但是你不可能改變ul背景,沒有javascript的顏色。

li:focus { 
 
    outline: 0; 
 
    background-color: #004494; 
 
    background: #004494; 
 
    text-decoration: none; 
 
    color: #ffffff; 
 
    font-weight: bold; 
 
}
<div id="menus"> 
 
    <ul> 
 
     <li tabindex="0"><a href="#">Home</a></li> 
 
     <li tabindex="0"><a href="#">Other</a></li> 
 
     <li tabindex="0"><a href="#">My Page</a></li> 
 
     <li tabindex="0"><a href="#">Other Page</a></li> 
 
     <li tabindex="0" style="border-right:none;"><a href="#">Logout</a></li> 
 
    </ul> 
 
</div>

使用jQuery:

http://jsfiddle.net/8zzc3oow/

由於只有javascipt的:

​​

當然jQuery和用戶點擊li鏈接時必須滿足javascript更改顏色事件。

jQuery的點擊 - https://api.jquery.com/click

jQuery的點擊例子

<div id="target"> 
    Click here 
</div> 
$("#target").click(function() { 
    alert("Handler for .click() called."); 
}); 

JS點擊例如

<input type="checkbox" id="myCheck" onmouseover="myFunction()" onclick="alert('clicked')"> 

<script> 
// On mouse-over, execute myFunction 
function myFunction() { 
    document.getElementById("myCheck").click(); // Click on the checkbox 
} 
</script> 
+0

似乎沒有什麼工作。你想在這裏做什麼? –

+0

爲了解釋他不能在沒有javascript的情況下獲得ul父母,他只能訪問li的css並解釋他如何通過js和jQuery來獲取點擊和更改顏色「事件」。什麼不起作用? –

0

你不能通過CSS(在你的情況下,它有李)的子元素選擇父項。

這裏最簡單的就是通過javascript來改變你的ul背景。