gpt4 book ai didi

javascript - event.dataTransfer 在 setTimeout 函数中丢失了它的项目

转载 作者:行者123 更新时间:2023-11-30 18:02:11 25 4
gpt4 key购买 nike

谁能解释一下为什么会这样。这是在 ondrop 处理程序中

为什么它会在计时器中丢失它的值?

var _this = this;

this.event = event;

console.log(this.event.dataTransfer.items);
## DataTransferItemList {0: DataTransferItem, length: 1, item: function, clear: function, add: function}


setTimeout((function() {
return console.log(_this.event.dataTransfer.items);
## DataTransferItemList {length: 0, item: function, clear: function, add: function}

}), 100);

即使这样也行不通:

var items, _items,
_this = this;

items = event.dataTransfer.items;
_items = items;

setTimeout((function() {
return console.log(_items);
}), 100);

最佳答案

如果我正在阅读 HTML5 Drag and drop正确地,dataTransfer 对象仅在拖放期间与“拖动数据存储”相关联,其他时候它是解除关联或禁用的,这实际上意味着 items是空的。

因此,event.dataTransfer 只能在 ondrop 处理程序中使用,如果您需要保留超出此范围的项目,则需要复制它们(尽管我我不确定复制项目是否会按预期工作,您可能需要立即提取所需的数据。)

关于javascript - event.dataTransfer 在 setTimeout 函数中丢失了它的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16685999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com