这是我的工作代码:
function dodrop(event) {
var dt = event.dataTransfer;
var files = dt.files;
var count = files.length;
output("File Count: " + count + "\n");
for (var i = 0; i < files.length; i++) {
output(" File " + i + ":\n(" + (typeof files[i]) + ") : <" + files[i] + " > " + files[i].name + " " + files[i].size + "\n");
}
}
function output(text) {
$('.drag-and-drop').text($('.drag-and-drop').text() + text);
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output" class="drag-and-drop" style="min-height: 200px; white-space: pre; border: 1px solid black;"
ondragenter="document.getElementById('output').textContent = ''; event.stopPropagation(); event.preventDefault();"
ondragover="event.stopPropagation(); event.preventDefault();"
ondrop="event.stopPropagation(); event.preventDefault(); dodrop(event);">
DROP FILES HERE FROM FINDER OR EXPLORER
</div>
这段代码显示了被删除文件的相关信息,并且运行良好。
但是,如果我从div标记中删除内联事件并使用Jquery,它的工作方式就不一样了。我试图将内联事件转换为如下所示的jQuery事件:
$('.drag-and-drop').on('dragenter', function(event){
event.stopPropagation();
event.preventDefault();
});
$('.drag-and-drop').on('dragover', function(event){
event.stopPropagation();
event.preventDefault();
});
$('.drag-and-drop').on('drop', function(event){
event.stopPropagation();
event.preventDefault();
console.log(event);
dodrop(event);
});
function dodrop(event) {
var dt = event.dataTransfer;
var files = dt.files;
var count = files.length;
output("File Count: " + count + "\n");
for (var i = 0; i < files.length; i++) {
output(" File " + i + ":\n(" + (typeof files[i]) + ") : <" + files[i] + " > " + files[i].name + " " + files[i].size + "\n");
}
}
function output(text) {
$('.drag-and-drop').text($('.drag-and-drop').text() + text);
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output" class="drag-and-drop" style="min-height: 200px; white-space: pre; border: 1px solid black;">
DROP FILES HERE FROM FINDER OR EXPLORER
</div>
但是在jQuery拖放事件中,返回的事件与内联ondrop返回的事件不相等。我想我需要编辑我的jQuery代码,但我不知道我做错了什么.
提前感谢
发布于 2018-05-15 20:47:08
jQuery事件对象与DOM事件对象略有不同。您可以通过调用originalEvent属性来访问原始事件对象。
dt = event.originalEvent.dataTransferhttps://stackoverflow.com/questions/50352896
复制相似问题