-3
此腳本允許在上傳前預覽/刪除圖像(通過單擊圖像)。我唯一的問題是,當我點擊圖像將其刪除時,它會刪除這兩個圖像。如何讓此腳本只刪除一個圖像?
形式:
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" style="display:none" id="upload-image" multiple="multiple" name="upload[]"></input>
<div id="upload" class="drop-area">
Upload File
</div>
<div id="thumbnail"></div>
<input type="submit" value="Submit" class="button" name="lesubmit"/>
</form>
JS:
jQuery(function($){
var fileDiv = document.getElementById("upload");
var fileInput = document.getElementById("upload-image");
console.log(fileInput);
fileInput.addEventListener("change",function(e){
var files = this.files
showThumbnail(files)
},false)
fileDiv.addEventListener("click",function(e){
$(fileInput).show().focus().click().hide();
e.preventDefault();
},false)
fileDiv.addEventListener("dragenter",function(e){
e.stopPropagation();
e.preventDefault();
},false);
fileDiv.addEventListener("dragover",function(e){
e.stopPropagation();
e.preventDefault();
},false);
fileDiv.addEventListener("drop",function(e){
e.stopPropagation();
e.preventDefault();
var dt = e.dataTransfer;
var files = dt.files;
showThumbnail(files)
},false);
function showThumbnail(files){
for(var i=0;i<files.length;i++){
var file = files[i]
var imageType = /image.*/
if(!file.type.match(imageType)){
console.log("Not an Image");
continue;
}
var image = document.createElement("img");
// image.classList.add("")
var thumbnail = document.getElementById("thumbnail");
image.file = file;
thumbnail.appendChild(image)
var reader = new FileReader()
reader.onload = (function(aImg){
return function(e){
aImg.src = e.target.result;
};
}(image))
var ret = reader.readAsDataURL(file);
var canvas = document.createElement("canvas");
ctx = canvas.getContext("2d");
image.onload= function(){
ctx.drawImage(image,100,100)
}
}
}
$('#thumbnail').on("click", function() {
$('#thumbnail').fadeOut(1000, function() {
$(this).removeProp('src');
$('img').replaceWith(selected_photo = $('img').clone(true));
});
});
});
所有的建議表示讚賞!
我認爲其實有些事情是錯誤的。您正在淡出您的縮略圖div,這是您所有圖像的容器。此外,您正在刪除同一個div上的源屬性(div不使用src屬性,因此無所作爲),然後當您在圖像上執行replaceWith()時,將選擇所有標記,而不是隻是被點擊的那一個。 – mhodges