document.getElementById(..)为null

时间:2015-03-28 23:44:02

标签: javascript

我最近开始使用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>

3 个答案:

答案 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);