JavaScript中的“addEventListener”事件在页面加载时触发

17
当我运行下面的脚本时,事件总是在页面加载时触发。我不确定我做错了什么,我创建元素,在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个回答

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

当执行这行代码时,alert函数将被调用并返回undefined。为了传递alert代码,你需要把它包裹在一个函数中。

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

1

这样怎么样:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接