¿Cómo añadir una funcion onclick al construir elemento con javascript?

publicado por: Anonymous

Intento crear y mostrar un elemento no mediante de html sino por javascript.
mi idea es añadirle una funcion

    var loadFile;
    loadFile = document.createElement('input');
    loadFile.id = 'carga';
    loadFile.type = 'file';
    loadFile.name = "archivo";

para que quede como si lo escribiera por html añadiendo “onclick="myFunction()

<input id="carga" type="file" name="archivo" style="color: transparent; width: 120px;" onclick="myFunction()">

como podría hacerlo?

solución

Puedes usar addEventListener para asignar una función al elemento de forma programática. Claro está, esa función debe existir en el contexto para que no te dé error.

Sería esto simplemente:

loadFile.addEventListener("click", myFunction, false);

O sea, la asignas el listener onclick del elemento a la función myFunction.

Por ejemplo:

_x000D_

_x000D_

var mDiv = document.getElementById('myDiv');_x000D_
var loadFile;_x000D_
loadFile = document.createElement('input');_x000D_
loadFile.id = 'carga';_x000D_
loadFile.type = 'file';_x000D_
loadFile.name = "archivo";_x000D_
loadFile.setAttribute('style', 'color: transparent; width: 120px;');_x000D_
loadFile.addEventListener("click", myFunction, false);_x000D_
_x000D_
mDiv.appendChild(loadFile);_x000D_
_x000D_
function myFunction() {_x000D_
  console.log("Se presionó: " + this.id);_x000D_
}

_x000D_

<div id="myDiv"></div>

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *