13

我一直在尝试使用 Javascript 拖放 API。

var file = document.getElementById('file');
file.addEventListener('dragstart', function(evt){
  evt.dataTransfer.setData("DownloadURL",fileDetails);
}, false);

这很有效,但是有什么方法可以使用 jQuery “on” 来捕捉事件?我试过了

$('#file').on('dragstart', function(evt) {
   console.log(evt.dataTransfer);                    // this returns undefined
   evt.dataTransfer.data("DownloadURL",fileDetails); // so this produces error
});

但它不起作用。

如果可能的话,我不想使用 jQuery 可拖动插件,因为我真的不希望有一个跨浏览器的解决方案。

谢谢

4

2 回答 2

23

您必须使用originalEventjquery 事件的属性来访问 javascript 侦听器的本机属性,如下所示:

evt.originalEvent.dataTransfer
于 2013-07-17T10:48:59.097 回答
0
$('#file').on('dragstart', function(evt) {
   console.log(evt.originalEvent.dataTransfer);                    
   evt.originalEvent.dataTransfer.data("DownloadURL",fileDetails); 
});
于 2020-04-19T19:26:14.377 回答