Javascript "addEventListener" Event Fires on Page Load

addeventlistener, dom-events, javascript

Solution

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

When this line is executed, the `alert` will be called and return `undefined`. To pass the alert code you need to wrap it in a function.

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

Problem

When I run the following script, the event always fires on page load. I am not sure what I am doing wrong here, I create the element, find it in the DOM then attach a listener, but it always fires the event when the page loads and not when the element is clicked. ``` <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> ```

Original source

Related problems