当我运行以下脚本时,事件总是在页面加载时触发。我不确定我在这里做错了什么,我创建了元素,在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>
答案 0 :(得分:30)
el.addEventListener("click", alert("clicktrack"), false);
执行此行时,将调用alert
并返回undefined
。要传递警报代码,您需要将其包装在函数中。
el.addEventListener("click", function() { alert("clicktrack"); }, false);
答案 1 :(得分: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>