页面加载时触发 addEventListener 事件
在 JavaScript 中,addEventListener() 方法旨在为特定元素注册事件侦听器。但是,当尝试将单击侦听器附加到动态创建的元素时,一些开发人员可能会遇到一种特殊的行为,即事件在页面加载时触发,而不是在单击元素时触发。为了解决这个问题,让我们深入研究代码片段及其执行。
在提供的脚本中,使用 document.write() 创建 ID 为“myDiv”的 HTML div 元素,然后检索该元素使用 document.getElementById("myDiv")。然后,使用 addEventListener() 方法将“click”事件的事件侦听器附加到检索到的元素。监听器被定义为alert("clicktrack"),它尝试显示一条带有消息“clicktrack”的警报。
问题的症结在于事件处理程序传递给addEventListener() 的方式。使用函数表达式时,必须将函数封装在括号内,以确保传递函数本身而不是其返回值。在代码片段中,正确的语法应该是:
el.addEventListener("click", function() { alert("clicktrack"); }, false);
此修改将警报调用封装在函数内,确保该函数被注册为事件处理程序而不是函数的返回值,这将是不明确的。因此,该事件只会在按预期单击“myDiv”元素时触发,而不是在页面加载时触发。
以上是为什么我的点击事件侦听器在页面加载时触发,而不是在单击元素时触发?的详细内容。更多信息请关注PHP中文网其他相关文章!