2011-12-28 121 views
11

我想使用JavaScript來創建一個按鈕,它具有一個onclick事件,該事件調用一個函數,該函數在頭中定義了一個參數,該參數是一個相對於該按鈕的dom對象。我該怎麼做呢?JavaScript創建onclick按鈕

例如:

<html> 
<head> <script>function blah(obj){alert(obj.value)}</script></head> 
<body> 
<button onclick="blah(this.parentNode.value);"></button> 
</body> 
</html> 

的javascript:

var newButton = document.createElement("button"); 
??? 
在我想新的按鈕是一樣的現有結束

+0

你能解釋一下爲什麼你這樣做,也許有更好的解決方案存在你正在做的事情。 – AlanFoster 2011-12-28 01:35:59

+0

其有點(不必要地)複雜,但我會嘗試。所以原來的按鈕會創建一堆東西並刪除它自己。創建的東西是另一個按鈕,將重新創建原來的按鈕,可以創建另一堆東西等 – WindowsMaker 2011-12-28 01:45:16

回答

28
function createButton(context, func){ 
    var button = document.createElement("input"); 
    button.type = "button"; 
    button.value = "im a button"; 
    button.onclick = func; 
    context.appendChild(button); 
} 

window.onload = function(){ 
    createButton(document.body, function(){ 
     highlight(this.parentNode.childNodes[1]); 
     // Example of different context, copied function etc 
     // createButton(this.parentNode, this.onclick); 
    }); 
} 

是你想要的嗎?

+0

我不認爲它解決了DOM問題,其中參數傳遞是相對於按鈕:( – WindowsMaker 2011-12-28 01:44:21

+0

@zaftcoAgeiha我沒有想知道這是什麼意思,你能解釋一下你想要什麼嗎?編輯::再次檢查這個帖子。 – AlanFoster 2011-12-28 01:44:55

+0

好的,我需要能夠動態創建這個 並有可點擊 – WindowsMaker 2011-12-28 02:05:49