我最近开始使用Javascript,我正在尝试创建一个基本的Breakout游戏来练习。但是,当我制作桨及其移动时,Firebug说document.getElementById()为null。我已经尝试了很多东西来解决它但它不起作用。任何人都可以帮我一把吗?
代码:
<html>
<head>
<title>Paddle</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript">
window.onload = addListeners();
function addListeners(){
document.getElementById('paddle').addEventListener('mousedown', mouseDown, false);
window.addEventListener('mouseup', mouseUp, false);
}
function mouseDown(e){
window.addEventListener('mousemove', cuadroMove, true);
}
function cuadroMove(e){
var cuadro = document.getElementById('paddle');
cuadro.style.position = 'absolute';
cuadro.style.top = e.clientY + 'px';
cuadro.style.left = e.clientX + 'px';
}
</script>
</head>
<body>
<div style="height:500px;width:500px;background-color:green;">
<div id="paddle" style="width:100px; background-color:red">test</div>
</div>
</body>
</html>
答案 0 :(得分:4)
您正尝试为load事件分配事件处理程序,但是:
window.onload = addListeners();
您立即 addListeners
并使用返回值(undefined
)作为事件处理程序。
删除()
。
答案 1 :(得分:2)
这是问题所在:
window.onload = addListeners();
它期望函数体,而不是函数返回值,所以正确的方法是:
window.onload = addListeners;
答案 2 :(得分:0)
你应该使用:
window.onload = addListeners;
或使用jQuery库(http://www.jquery.com),onload函数的快捷方式如下:
jQuery( function() {
addListeners();
});
或:
jQuery(addListeners);
或:
window.addEventListener('load', addListeners, false);