이 드래그 앤 드롭을 구현했습니다 : http://hayageek.com/drag-and-drop-file-upload-jquery/ .
잘 작동하지만 내 문제는 다음과 같습니다.
파일을 추가 한 다음 제거합니다. 다른 파일을 추가하면 "제거 된"파일이 다시 나타나지만 제거 버튼이 없습니다.
나는 이것을 해결하기 위해 필사적이다.
문제가 처리기 또는 삭제 기능에 있다고 생각합니다. 하지만 찾을 수 없습니다. 휴식이 필요할지도 ...
$(document).ready(function () {
$("#errorMessages").hide();
// Handle drag and drop events with jQuery
var obj = $("#dragandrophandler");
obj.on('dragenter', function (e) {
e.stopPropagation();
e.preventDefault();
$(this).css('border', '2px solid #0B85A1');
});
obj.on('dragover', function (e) {
e.stopPropagation();
e.preventDefault();
});
obj.on('drop', function (e) {
$(this).css('border', '2px dotted #0B85A1');
e.preventDefault();
var files = e.originalEvent.dataTransfer.files;
cleanErrorMessages();
//We need to send dropped files to Server
handleFileUpload(files, obj, uploadURL);
});
// If the files are dropped outside the div, file is opened in the browser window. To avoid that we can prevent ‘drop’ event on document.
$(document).on('dragenter', function (e) {
e.stopPropagation();
e.preventDefault();
});
$(document).on('dragover', function (e) {
e.stopPropagation();
e.preventDefault();
obj.css('border', '2px dotted #0B85A1');
});
$(document).on('drop', function (e) {
e.stopPropagation();
e.preventDefault();
});
$("#file").change(function () {
cleanErrorMessages();
});
// add file to the list using the input
$("#addFile").click(function (evt) {
evt.preventDefault();
var files = $("#file")[0].files;
handleFileUpload(files, obj);
$("#file").val("");
return false;
});
});
더 많은 코드가 있지만 문제는이 부분에 있어야한다고 생각합니다. 해결책을 찾으면 게시하겠습니다.
제거 기능 :
this.remove.click(function (evt) {
// TO DO: call to the WS to remove from the server
var numrow = evt.currentTarget.parentElement.attributes[1].value;
evt.currentTarget.parentElement.removeChild(evt.currentTarget);
$(".statusbar[numrow='" + numrow + "']").fadeOut(1000, "easeInOutCubic", function (evt) {
});
});
제거 기능 변경 :
this.remove.click(function (evt) {
// TO DO: call to the WS to remove from the server
var numrow = evt.currentTarget.parentElement.attributes[1].value;
evt.currentTarget.parentElement.remove(evt.currentTarget);
$(".statusbar[numrow='" + numrow + "']").fadeOut(1000, "easeInOutCubic", function (evt) {
});
});
변경해야했습니다 :이를 evt.currentTarget.parentElement.removeChild(evt.currentTarget);
위해 : evt.currentTarget.parentElement.remove(evt.currentTarget);
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다