onClick事件不是触发函数

时间:2013-07-25 14:00:46

标签: javascript javascript-events

我有以下脚本尝试在点击时更改div的颜色,其id为包装器。我尝试了以下内容的变体,但看不出问题。 on click事件不会触发该功能。 我尝试将背景颜色更改为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;

1 个答案:

答案 0 :(得分:6)

  1. JavaScript区分大小写。该属性为onclick(但您可能应该使用addEventListener)。
  2. ()放在函数名的末尾将调用该函数。您想将其分配给属性。删除括号。