0

我有以下脚本,它试图在单击时更改 div 的颜色,其 id 为 wrapper。我尝试了以下内容的变体,但看不到问题。点击事件不会触发该功能。我尝试将背景颜色更改为背景颜色,这没有任何区别。我知道我在这里使用了一个全局变量,请忽略那部分:

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 区分大小写。该属性是(但无论如何onclick您可能应该使用addEventListener )。
  2. 放在()函数名的末尾将调用该函数。您想将其分配给属性。删除括号。
于 2013-07-25T14:02:49.377 回答