這裏就是我想要實現: 我在列表中有四個按鈕,每個按鈕都有一個白色的背景和獨特的顏色邊框。當單擊一個按鈕時,其背景將變爲與其邊框相同的顏色。當第二個按鈕被點擊時,第一個按鈕返回到正常狀態,第二個按鈕背景被第二個按鈕邊框顏色填充。每個按鈕都有id爲「NAVX」,其中X是從1到4使用Javascript和JQuery來改變CSS屬性:JQuery不能改變Javascript已經改變的屬性?
一些我一直在使用jQuery的混合和JavaScript來實現這一目標。我試圖在點擊時使用jQuery來將所有按鈕背景設置爲白色,並嘗試使用JavaScript來填充單擊的按鈕背景。這是因爲我知道jQuery的可以讓你收集的所有元素與一個共同的ID字符串:
$('[id^=nav]').css({"background":"#FFFFFF", "color":"#000000"});
同時使用javascript我可以通過點擊的ID和顏色參數功能:
<a id="nav1" onclick="changeHeaderColour(this, '#f0e442')"> Button 1 </a>
function changeHeaderColour(navItem, newColor) {
document.getElementById(navItem.id).style.backgroundColor = newColor;
document.getElementById(navItem.id).style.color = newColor;
}
我一直玩弄混合的方式結合這些,改變使用哪些選擇器,並篡改核心CSS,我卡住實現以下兩件事之一:
- 當一個按鈕被點擊時,它ge永久卡住填充背景。繼續點擊按鈕套牢所有按鈕填寫完成。
- 當點擊一個按鈕,所有按鈕獲得帶有白色背景permantently卡住。
我真的不知道是怎麼回事,以實現這一目標。我似乎無法找到不相互覆蓋的CSS級別的正確組合。我沒有使用過jQuery的addClass()方法,因爲每個類都需要一個獨特的顏色。如果任何人有任何建議,那將會很棒 - 這似乎是一個簡單的任務,我決心自己實現這個目標,但我現在已經持續了好幾個小時了!
感謝您的幫助!
附註(不解決您的問題):你不需要這樣的:'的document.getElementById(navItem.id)','navItem'就已經是元素你正在通過。 –
啊,是的,我絕望的殘餘在明確宣佈的東西希望一些神奇的解決方案。 – Jonathan