Javascript "addEventListener" событие срабатывает при загрузке страницы

когда я запускаю следующий скрипт, событие всегда срабатывает при загрузке страницы. Я не уверен, что я делаю неправильно Здесь, я создаю элемент, нахожу его в DOM, а затем прикрепляю прослушиватель, но он всегда запускает событие при загрузке страницы, а не при нажатии на элемент.

<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>

2 ответов


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

когда эта строка выполняется, то alert будет вызываться и возвращаться undefined. Чтобы передать код предупреждения, вам нужно обернуть его в функцию.

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

Как насчет:

<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>