javascript - 我的拖放功能不起作用。我收到类型错误。这是什么意思?

标签 javascript drag-and-drop drag

我收到一条错误消息:

Uncaught TypeError: Cannot read property 'addEventListener' of null,

我正在尝试制作一个包含披萨图像的拖放游戏,但我正在努力将任何内容拖放到 HTML 上的任何位置。当我为它创建 HTML 时,我不明白为什么我的 addEventListener 为 null。

这是我到目前为止的代码:

<html>
<body>
<div id="outerContainer">
    <div id="container">
        <div id="item">

        </div>
    </div>
</div>
</body>
</html

<script>

var dragItem = document.querySelector("#item");
var container = document.querySelector("#container");

var active = false;
var currentX;
var currentY;
var initialX;
var initialY;
var xOffset = 0;
var yOffset = 0;


container.addEventListener("mousedown", dragStart, false);
container.addEventListener("mouseup", dragEnd, false);
container.addEventListener("mousemove", drag, false);

最佳答案

您应该尝试将 javascript 代码放入函数中,并在 onload 事件上调用该函数。这是为了确保在执行 JavaScript 时加载 DOM。

<html>
<body onload="init()">
    <div id="outerContainer">
        <div id="container">
            <div id="item">
            </div>
        </div>
    </div>
</body>
</html>

<script>

function init() {
    var dragItem = document.querySelector("#item");
    var container = document.querySelector("#container");

    var active = false;
    var currentX;
    var currentY;
    var initialX;
    var initialY;
    var xOffset = 0;
    var yOffset = 0;

    container.addEventListener("mousedown", dragStart, false);
    container.addEventListener("mouseup", dragEnd, false);
    container.addEventListener("mousemove", drag, false);
}
</script>

关于javascript - 我的拖放功能不起作用。我收到类型错误。这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58964574/

相关文章:

javascript - 从 Silverlight 调用 Javascript 函数

c++ - (Qt 或其他)在 Windows 桌面或 explorer.exe 上使用 http 或 ftp 协议(protocol)拖放 mime 类型 uri-list 的数据

ios - 在具有 UITableView 的 UICollectionView 中拖放

wpf - 用拇指拖动 wpf 窗口 : can it be transparent?

java - 以编程方式开始拖动 JSlider Thumb

ios - Swift iOS - 从 UIView 外部检测触摸拖动进入 UIView

javascript - 有条件地使用三元运算符应用类

javascript - 使用js滚动到顶部

Android GridView 通过拖放重新排序元素

javascript - 简单的 js 添加 3d