2015-01-09 46 views
1

有人可以解釋我喜歡我是五爲什麼它沒有點擊事件執行功能。以及如何解決它。謝謝。函數創建按鈕與傳遞參數onclick函數

function test(){ 
    alert("works"); 
} 

function createButton(name,location,id,funX){ 
    var button = document.createElement("input"); 
    button.type = "submit"; 
    button.name = name; 
    button.id = id; 
    button.onclick = funX; 
    var placeHolder = document.getElementById(location); 
    placeHolder.appendChild(button); 
}; 



window.onload = function() { 
    createButton("Submit","content","submitEnd",test()); 
}; 

http://jsfiddle.net/mabui91/yLoty39s/

回答

3

當您添加括號的功能,你怎麼稱呼它。不遲,但那時正確,並且你返回了函數返回的結果。

JavaScript中的函數默認返回undefined,除非您明確地返回其他內容。

你真正寫是

createButton("Submit", "content", "submitEnd", undefined); 

最後undefined是因爲你調用的函數,這將是一樣

var result = test(); // undefined 

createButton("Submit", "content", "submitEnd", result); 

解決這個問題的辦法,就是參考的功能,不叫它

createButton("Submit", "content", "submitEnd", test); 

看,沒有括號。

FIDDLE

+0

你應該考慮在教育事業。 – Mouser

+0

@Mouser - 這是一份禮物..... *和*一個詛咒! – adeneo

+0

生活中最美好的事物就是! – Mouser