【问题标题】:Javascript "addEventListener" Event Fires on Page Load [duplicate]页面加载时触发Javascript“addEventListener”事件[重复]
【发布时间】:2011-01-23 08:36:22
【问题描述】:
当我运行以下脚本时,该事件总是在页面加载时触发。我不确定我在这里做错了什么,我创建了元素,在 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>
【问题讨论】:
标签:
javascript
javascript-events
addeventlistener
【解决方案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>
【解决方案2】:
el.addEventListener("click", alert("clicktrack"), false);
当这一行被执行时,alert 将被调用并返回undefined。要传递警报代码,您需要将其包装在一个函数中。
el.addEventListener("click", function() { alert("clicktrack"); }, false);