我正在使用这个 AngularJS Drag & Drop 库,文档令人困惑,而且已经过时了,但效果是,即使无处可放,它似乎总是会掉下来。
问问题
36 次
1 回答
0
一开始我不明白的一件事是,event.preventDefault()
在 ondragover 内部是允许 drop 的方式(这与你所期望的有点倒退)。因此,我搜索诸如“如何防止拖放”之类的短语。
无论如何,问题是啊哈,这是库的问题,它似乎有一些代码行来处理一些不再发生的旧情况。所以从技术上讲,它实际上并没有下降,但无论如何它都会调用 onDropSuccess 函数。
此问题onDropSuccess 将始终在 IE 中触发,Windows 上的 Firefox总结了该问题,我使用的修复方法是从以下行中删除这些行function determineEffectAllowed (e)
:
if (e.dataTransfer && e.dataTransfer.dropEffect === 'none') {
if (e.dataTransfer.effectAllowed === 'copy' ||
e.dataTransfer.effectAllowed === 'move') {
e.dataTransfer.dropEffect = e.dataTransfer.effectAllowed
} else if (e.dataTransfer.effectAllowed === 'copyMove' || e.dataTransfer.effectAllowed === 'copymove') {
e.dataTransfer.dropEffect = e.ctrlKey ? 'copy' : 'move'
}
}
所以它看起来像这样:
function determineEffectAllowed (e) {
if (e.originalEvent) {
e.dataTransfer = e.originalEvent.dataTransfer
}
}
于 2019-09-14T16:00:13.480 回答