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.onload = init();

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

window.onload = init;

虽然我建议也使用addEventListener:

window.addEventListener("load", init);
上一篇:c++中的.hpp文件


下一篇:.h 与 .hpp 文件