Drag/Drop 事件 return 未定义

Drag/Drop events return undefined

我正在尝试为角色扮演游戏制作库存系统。我希望用户能够将物品从他们的库存中拖放到角色槽中并装备它。

this.dragItem = function(event) {
    event.dataTransfer.setData("text", event.target.id);
}

我打算拖动的元素是

$('<div>', {
    class: 'HUDInventoryItem',
    id: `${i}`,
    draggable: 'true',
    ondragstart: 'inventoryWindow.dragItem()'
}).appendTo('#inventoryWindowItems');

我使用 dragItem() 获取数据,当我拖动项目时遇到的第一个错误是

Uncaught TypeError: Cannot read property 'dataTransfer' of undefined

我添加了 console.log(event) 来查看事件对象,它 returns 是一个未定义的对象。我做错了什么?

您没有将事件传递给函数。试试这个:

$('<div>', {
    class: 'HUDInventoryItem',
    id: `${i}`,
    draggable: 'true',
    ondragstart: 'inventoryWindow.dragItem(event)'
}).appendTo('#inventoryWindowItems');