javascript - addEventListener() 不工作

标签 javascript addeventlistener

好的,所以我尝试使用 addEventListener 函数制作此页面,以解决按钮的点击问题;它没有用。我通过删除除监听器所需的基本元素以外的所有内容来缩小范围,并留下以下内容:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function init(){
    document.getElementById("test").addEventListener("mousedown", function(){
        alert("Test successful");
    });
}
body.onload = init();
</script>
</head>
<body>
<button id="test">Click</button>
</body>
</html>

这也不起作用,所以我知道问题出在我上面的语法中。请注意,当我拿走 body.onload = init(); 并将 onload="init()" 放入 body 标签时,它确实起作用了:O 问题是,我不想让它内联。有什么建议么?

注意:请记住,这个问题不是关于 JS 中如何存在错误,即使标题可能暗示如此,它是关于我如何无法让它工作因为我可能弄错了语法。如果您愿意,请随时重命名它。

最佳答案

首先,您应该通过document.body 访问body 元素。但是,onload 是在 window 上定义的,因此您实际上需要:

window.onload = init();

但是,这将执行 init() 方法并将返回值存储在 window.onload 中。显然,这不是您想要的:您希望 init 函数充当 onload 处理程序。因此,你应该写:

window.onload = init;

虽然我也建议为此使用 addEventListener:

window.addEventListener("load", init);

关于javascript - addEventListener() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839642/

相关文章:

javascript - WebRTC 上音频无法工作,但视频可以工作

javascript - 如何仅将字符串的一部分呈现为 HTML

javascript - 修改 DOM

javascript - 将多个 addEventListener 添加到特定函数

javascript - 为什么 Firefox 说 window.event 是未定义的? (添加事件监听器的调用函数)

javascript - 为什么addEventListener函数中未定义?

javascript - 为什么我的removeEventListener 不起作用?

javascript - 新标签中的神奇链接

javascript - 如何将用户输入存储在数组中

javascript - 使用javascript的addeventlistener单击按钮后更改输入文本的值