2011-12-28 12 views
11

私はボタンに関連したdomオブジェクトをパラメータとして取り込むheadで定義された関数を呼び出すonclickイベントを持つボタンを作成するためにjavascriptを使用しようとしています。どうすればいい?onclickでボタンを作成するためのjavascript

例:

<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

+0

それはちょっと(不必要な)複雑ですが、私は試してみます。元のボタンではたくさんのものが作成され、削除されます。作成されたものの中には、元のボタンを再作成する別のボタンがあります。これは、別の束を作成する可能性があります。 – WindowsMaker

答えて

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

+0

@zaftcoAgeiha私はない – AlanFoster

+0

これを動的に作成する必要があります。 をハイライトしてクリック可能にしてください – WindowsMaker

関連する問題