2013-07-25 171 views
0

我有以下腳本,它嘗試更改div的顏色,單擊時使用包裝的id。我已嘗試過以下內容的變體,但無法看到問題。點擊事件不會觸發該功能。 我曾嘗試將background-color更改爲backgroundColor,但這沒有什麼區別。我知道我使用一個全局變量在這裏,請忽略部分:onClick事件不觸發函數

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

把你的init改成:'wrapper.onclick = colorChange;' – RobH

回答

6
  1. 的JavaScript區分大小寫。該物業是onclick(但你可能應該使用addEventListener反正)。
  2. ()放在函數名的末尾會調用函數。你想把它分配給一個屬性。刪除括號。
+0

非常感謝! - 所以你建議我做更多的事情:'wrapper.addEventListener(「click」,colorChange,false);'? – gcubed

+0

是的,那樣更好。 –

+0

@Quentin - 你能告訴我爲什麼只聽一次,但如果我再次點擊,它不會再運行該功能? – gcubed