如何使此脚本仅删除一个图像
How do I make this script remove only one image?
此脚本允许在上传之前预览/删除图像(通过单击图像)。我唯一的问题是当我单击图像将其删除时,它会删除两个图像。
形式:
<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));
});
});
});
所有的建议都值得赞赏!
根据我的评论,您将需要执行以下操作:
$("#thumbnail").on("click", "img", function () {
var image= $(this);
image.fadeOut(1000, function () {
image.removeProp('src').replaceWith(selected_photo = image.clone(true);
});
});
这实际上会淡出图像,从图像中删除源属性,并将其替换为克隆。我仍然不明白你正在进行的 replaceWith(),所以你可能不得不稍微调整一下,但其余的应该对你有帮助。
相关文章:
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 如何将多个画布保存为一个图像
- 是否可以仅通过jQuery将图像替换为用户动态选择的另一个图像
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 如何在设定的时间间隔内一次只显示一个图像
- 循环以检查数组中的最后一个图像
- 下载Div&画布为一个图像
- 当页面包含指向一个图像的多个链接时,fancyBox会复制缩略图辅助图像
- 在引导程序旋转木马中显示下一个图像
- 拉斐尔用一个图像填满了这个圆圈
- 将多个重叠的透明图像保存为一个图像
- 我怎么能把它做成这样一个图像就不能拖动了
- 普通JS:使80%宽度元素100%IF包含一个图像
- 当滑块只有一个图像时,如何禁用下一个/上一个按钮
- 如何使用onclick事件点击一个图像,并让它更改同一网页上的另一个图像
- 将多个画布保存为一个图像(使网站像PicFrame一样)
- 在 JavaScript 中将一个.PNG图像拖放到另一个图像上
- 如何在CSS中修复与另一个图像进行比较的图像
- 只有一个图像被绘制到画布上
- 使用 jQuery 在最后一个图像之后附加 HTML