,但每次將文件拖動到上傳文件時,仍然會打開文件。如何防止這種情況?我很困惑。請幫忙。由於拖放的原因是「在文件上傳字段中」而不是創建另一個div標籤放置區域?無論如何要使它在上傳領域工作?IE 10拖放仍然打開文件事件雖然IE 10上有dragover事件
<div id="dnd-upload-box">
<img id="image" src="https://upload.dev/img/elements/drag_drop.jpg" width="100%" height="100%"/>
<?php
echo $this->Form->input('files', array(
'id' => 'file-input-0',
'class' => 'file-input',
'type' => 'file',
'multiple' => 'multiple',
'name' => 'fileselect[]',
'onChange' => 'getFiles(this);'
));
?>
</div>
<script type="text/javascript">
// call initialization file
$(document).ready(function() {
Init();
});
// getElementById
function $id(id) {
return document.getElementById(id);
}
// initialize
function Init() {
var filed = $id("file-input-0");
filed.addEventListener("dragenter", FileDragHover, false);
filed.addEventListener("dragover", FileDragHover, false);
filed.addEventListener("dragleave", FileDragHover, false);
//filed.addEventListener("drop", FileSelectHandler, false);
}
function FileSelectHandler(e) {
// cancel event and hover styling
console.log("selecthandler");
FileDragHover(e);
getFiles(e);
}
// file drag hover
function FileDragHover(e) {
console.log("draghover");
e.stopPropagation();
e.preventDefault();
e.target.className = (e.type == "dragover" ? "hover" : "");
}
</script>
這個答案是沒有用的,除非你展示'doNothing'是如何實現的,因爲那是使'drop'事件工作的核心技巧。 – vog
從他鏈接的頁面開始; (event) { event.stopPropagation(); event.preventDefault(); }' –