2013-07-03 43 views
0

我需要使用javascript動態創建按鈕。所以我在「腳本」標籤之間編寫了這些代碼。在javascript中創建按鈕後出現不必要的情況

window.onload = function() { 
    var newButton = document.createElement('input'); 
    newButton.type = 'button'; 
    newButton.value = 'What's the day today?'; 
    newButton.id = 'btn1'; 
    newButton.onclick = myfunction(); 
    div1.appendChild(newButton); 
} 
function myfunction() { 
    var x = new Date().getDay(); 
    switch (x) { 
     case 0: alert("sunday"); break; 
     case 1: alert("monday"); break; 
     case 2: alert("tuesday"); break; 
     case 3: alert("wednesday"); break; 
     case 4: alert("thursday"); break; 
     case 5: alert("friday"); break; 
     case 6: alert("saturday"); break; 

    } 
} 

當頁面加載時,「myfunction()」函數自動運行。之後,當我按下這個按鈕時,沒有任何反應。我的錯誤是什麼?

+0

在您的文章的顏色編碼顯示你的問題。 – epascarello

+0

這不會運行,因爲你沒有逃脫'in'什麼「。 其他的一切,請參閱@Arun P Johny的解決方案。 – cybrox

+0

那麼,你正在'newButton.onclick = myfunction();'中調用函數。 –

回答

2

您需要更改

newButton.onclick = myfunction; 

當你做newButton.onclick = myfunction();它執行myfunction,然後分配在這種情況下,不確定的,它返回到onclick處理程序值。什麼,你需要做的是通過函數參考onclick財產

此外,我認爲以下是一個複製粘貼變化

newButton.value = 'What's the day today?'; // you need to escape ' with \' or use "What's the day today?" 
+0

@downvoter謹慎解釋 –

相關問題