0

クリックすると、ラッパーのIDでdivの色を変更しようとする次のスクリプトがあります。以下のバリエーションを試しましたが、問題が見つかりません。クリック イベントは関数をトリガーしません。background-color を backgroundColor に変更しようとしましたが、違いはありませんでした。ここでグローバル変数を使用していることはわかっています。その部分は無視してください。

var wrapper;

function wrapperColorToCoral () {
    wrapper.setAttribute('style', 'background-color:LightCoral;');
}

function wrapperColorToGreen () {
    wrapper.setAttribute('style', 'background-color:LightGreen;');
}

function colorChange () {
    //if (wrapper.getAttribute('style', 'background-color:LightCoral;') === true) {
    if (wrapper.style != 'background-color:LightGreen;') {
    wrapperColorToGreen();
    }
    else {
    wrapperColorToCoral();
    }
}
// INIT FUNCTION
function init () {
    wrapper = document.getElementById('wrapper');
    wrapper.onClick = colorChange();
}

window.onload = init;

ご協力ありがとうございました

編集(作業中 - クエンティンに感謝):

var wrapper

function wrapperColorToCoral () {
    wrapper.style.backgroundColor="LightCoral";
}

function wrapperColorToGreen () {
    wrapper.style.backgroundColor="LightGreen";
}

function colorChange () {
    if (wrapper.style.backgroundColor==="LightCoral") {
    wrapperColorToGreen();
    }
    else {
    wrapperColorToCoral();
    }
}

function init () {
wrapper = document.getElementById('wrapper');
wrapper.addEventListener("click", colorChange, false);
}
window.onload = init;
4

1 に答える 1

6
  1. JavaScript では大文字と小文字が区別されます。プロパティは(ただし、とにかくaddEventListeneronclickを使用する必要があります)。
  2. 関数()名の最後に付けると、関数が呼び出されます。プロパティに割り当てたいとします。括弧を削除します。
于 2013-07-25T14:02:49.377 に答える