2015-12-14 139 views
-1

我正在寫一個簡單的遊戲,並且想要將click事件添加到body元素。但下面的腳本不起作用。有什麼我可以改變,使其工作?Onclick功能分配不起作用

var theBody = document.getElementsByTagName("body")[0]; 
theBody.addEventListener("click", gameOver); 
theBody.onclick = gameOver(); 
function gameOver() { 
    alert("Game Over!"); 
} 
+5

'theBody.onclick = gameOver;' - 擺脫'()'因爲這意味着你正在調用函數。 – Pointy

+0

也'var theBody = document.body;'有點簡單:) – Pointy

+1

'theBody.onclick = gameOver();'不需要..試試這個:https://jsfiddle.net/muevbeqm/ – Rayon

回答

-1
Try this: 

document.getElementsByTagName("body ").addEventListener("click", function(){ 
    gameOver(); 
}); 
function gameOver() { 
    alert("Game Over!"); 
} 
+0

它的工作原理!非常感謝你! – susansecret

+0

@susansecret [不,這絕對不行...](http://jsfiddle.net/5wvb654u/)它引發錯誤'document.getElementsByTagName(...)。addEventListener不是一個函數',因爲你可以將一個事件監聽器分配給一個數組。這也是糟糕的風格,因爲你正在創建一個函數來調用另一個函數。 –

+0

另外,數組是空的,因爲沒有''body''這樣的標籤...... –

1

使用此:

document.body.addEventListener("click", gameOver); 

或者這樣:

document.body.onclick = gameOver; // no brackets 

不能同時使用。

+0

謝謝。我刪除了一些代碼,現在代碼如下。但它仍然不起作用... theBody.addEventListener(「click」,gameOver); function gameOver(){ \t alert(「Game Over!」); } – susansecret