dragover dataTransfer使用“on”触发器

时间:2016-08-08 06:43:58

标签: jquery

我的解决方案有效,看起来像这样:

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重新加载后继续工作?

1 个答案:

答案 0 :(得分:0)

我在Jquery Documentation找到了答案。我必须使用 originalEvent

正确的结果是:

$(document).on('dragover', '.drop-zone', function(e) {
   e.stopPropagation();
   e.preventDefault();
   e.originalEvent.dataTransfer.dropEffect = 'copy';
});