JavaScriptを使用してボタンのbackground-color
プロパティを変更しようとしています。スクリプトは、現在のbackground-color
が何に設定されているかを確認してから、切り替えます。これはJavaScriptコードです:
function btnColor(btn,color) {
var property=document.getElementById(btn);
if (property.style.background-color == "#f47121") {
property.style.background-color=Color;
}
else {
property.style.background-color = "#f47121";
}
}
これは私がhtmlで渡すものです:
<input type="button" id="btnHousing" value="Housing" onclick="toggleLayer('transparent1');btnColor('btnHousing','#fff200');" />
toggleLayer
は、私が使用している別の関数で、完全に正常に機能します。なぜ動かないのか分かりません。
JsBinで実際に動作する例を作成しました: ここにリンク
JQueryを使用しないのはなぜですか?
コアJavaScriptは非常に生です。背景色を変更するだけの場合は、jQueryでon clickイベントを使用します。
$('#btnHousing').click(function() {
//Now just reference this button and change CSS
$(this).css('background-color','#f47121');
});
個人的には、生のjavascriptよりもはるかに優れています。
よろしく
あなたのjavascriptでこの関数を試してください:
function setColor(btn,color){
var property=document.getElementById(btn);
if (property.style.backgroundColor == "#f47121") {
property.style.backgroundColor = color;
} else {
property.style.backgroundColor = "#f47121";
}
}
Onclick属性で入力のIDが繰り返されないようにするには、次のようにします。
HTML:
<input type="button" id="btnHousing" value="Housing" onclick="toggleLayer('transparent1');btnColor(this, '#fff200');" />
JavaScript(変数名は大文字と小文字が区別されるので注意してください。Color=> colorを参照):
function setColor(btn, color){
if (btn.style.backgroundColor == "#f47121") {
btn.style.backgroundColor = color;
} else {
btn.style.backgroundColor = "#f47121";
}
}
コードをこれに変更してください...
function btnColor(btn, color) {
var property = document.getElementById(btn);
if (property.style.backgroundColor == "#f47121") {
property.style.backgroundColor = Color;
} else {
property.style.backgroundColor = "#f47121";
}
}
ハイフン付きのcss属性は、JSではキャメルケースです。例えば background-color
は-> backgroundColor
になります
上記のコードは動作するはずです。