2010-03-03 8 views
9

Cuando ejecuto el siguiente script, el evento siempre se desencadena en la carga de la página. No estoy seguro de lo que estoy haciendo mal aquí, creo el elemento, lo encuentro en el DOM y luego adjunto un oyente, pero siempre activa el evento cuando la página se carga y no cuando se hace clic en el elemento.Javascript "addEventListener" Evento se desencadena en la carga de la página

<script type="text/javascript" language="javascript"> 
    document.write("<div id=\"myDiv\">I am a div</div>"); 
    el = document.getElementById("myDiv"); 
    el.addEventListener("click", alert("clicktrack"), false); 
</script> 

Respuesta

24
el.addEventListener("click", alert("clicktrack"), false); 

Cuando se ejecuta esta línea, el alert se llamará y volver undefined. Para pasar el código de alerta, debe envolverlo en una función.

el.addEventListener("click", function() { alert("clicktrack"); }, false); 
1

¿Qué tal:

<script type="text/javascript" language="javascript"> 
    document.write("<div id=\"myDiv\">I am a div</div>"); 
    el = document.getElementById("myDiv"); 
    el.addEventListener("click", function() { alert("clicktrack"); }, false); 
</script> 
Cuestiones relacionadas