2011-12-28 28 views
11

Estoy tratando de usar javascript para crear un botón que tiene un evento onclick que llama a una función definida en el encabezado que toma como parámetro un objeto dom relativo al botón. ¿Cómo hago esto?javascript para crear un botón con onclick

ejemplo:

<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"); 
??? 

al final quiero el nuevo botón a ser el mismo que el existente.

+0

podría explicar por qué está haciendo esto, tal vez existe una mejor solución para lo que está haciendo .. – AlanFoster

+0

es un poco (innecesariamente) complicado, pero lo intentaré. entonces el botón original creará un montón de cosas y se eliminará solo. Entre las cosas creadas hay otro botón que recreará el botón original que podría crear otro grupo de cosas y así sucesivamente – WindowsMaker

Respuesta

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); 
    }); 
} 

¿eso es lo que quieres?

+0

no creo que resuelva el problema DOM donde el argumento pasado es relativo al botón :( – WindowsMaker

+0

@zaftcoAgeiha no tengo idea de lo que eso significa. ¿Podría explicar lo que quiere, por favor. Editar :: Compruebe la publicación de nuevo. – AlanFoster

+0

bien, necesito poder crear dinámicamente este resalte y haga clic en – WindowsMaker

Cuestiones relacionadas