我的解决方案有效,看起来像这样:
var dropZones = document.querySelectorAll('.drop-zone');
for (var i = 0; i < dropZones.length; i++) {
dropZones[i].addEventListener('dragover', function (e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
});
...
}
但由于Ajax重绘,我必须使用“on”函数触发它。但它返回给我“无法设置属性'dropEffect'未定义”
$(document).on('dragover', '.drop-zone', function(e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
});
你有什么想法,为什么会发生这种情况?我应该如何做到这一点,以便在ajax重新加载后继续工作?
答案 0 :(得分:0)
我在Jquery Documentation找到了答案。我必须使用 originalEvent
正确的结果是:
$(document).on('dragover', '.drop-zone', function(e) {
e.stopPropagation();
e.preventDefault();
e.originalEvent.dataTransfer.dropEffect = 'copy';
});