你是一個元素的background-color
在瀏覽器不同的報道時遇到的問題,無論是RGB,十六進制或者HSL RGBA(帶有或不帶有空格)...
所以該按鈕可能永遠不會滿足if
條件,這意味着它將總是轉到else
。
考慮到這一點,我建議使用一個類名,以保持UN /切換狀態的軌跡:
function btnColor(btn, color) {
var property = document.getElementById(btn);
if (property.className !== 'toggled') {
property.style.backgroundColor=color;
property.className = 'toggled'
}
else {
property.style.backgroundColor = "rgb(244,113,33)";
property.className = '';
}
}
JS Fiddle demo。
當然,如果我們使用元素的class
,我們還不如用CSS來風格元素:
function btnColor(btn) {
var property = document.getElementById(btn);
if (property.className !== 'toggled') {
property.className = 'toggled'
}
else {
property.className = '';
}
}
隨着CSS:
#btnHousing {
background-color: rgb(255,242,0);
}
#btnHousing.toggled {
background-color: rgb(244,113,33);
}
JS Fiddle demo 。
function btnColor(btn) {
var property = document.getElementById(btn);
property.className = 'toggled' == property.className ? '' : 'toggled';
}
JS Fiddle demo:
以前的JavaScript可以(使用相同的CSS)簡化。
CONSOLE.LOG'property.style.backgroundColor'之前'if',你會看到什麼樣的價值實際上是。 – Teemu