dataTransfer.getData()在dragover,dragenter,dragleave中无法获取数据的问题

在HTML5的拖拽事件中,dataTransfer.getData()在dragover, dragenter, dragleave事件中返回为空,因这些事件中drag data store处于保护模式。为在dragover时访问dragstart中的数据,可以使用全局变量作为临时存储。同时,dragover事件更适合处理数据,而非立即应用视觉效果,因为样式更改通常在drop后才会生效。" 80603194,7760103,解决Python pandas DataFrame与Series计算axis=1时的RuntimeWarning,"['pandas', 'dataframe', 'python', 'error handling']
摘要由CSDN通过智能技术生成

做拖拽相关效果时,想在ondragover时给被拖拽元素添加一些样式,于是在dragover事件的函数中通过dataTransfer.getData()获取在dragstart中设置的数据,然而发现dataTransfer.getData()所返回的数据为空。

查询资料发现dataTransfer.setData()中所设置的数据是存储在drag data store中,而根据W3C标准,drag data store有三种模式,Read/write mode, Read-only mode跟Protected mode。


W3C Working Draft中5.7.2.关于三种drag data store mode的定义


A drag data store mode, which is one of the following:

Read/write mode
For the dragstart event. New data can be added to the drag data store.

Read-only mode
For the drop event. The list of items representing dragged data can be read, including the data. No new data can be added.

Protected mode
For all other events. The formats and kinds in the drag data store list of items representing dragged data can be enumerated, but the data itself is unavail

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值