클릭한것만 사라지게 하고싶습니다
본문
인풋 파일을 클릭한것만 지우게 하고싶은데
올린거 다 지워져서 어떤것을 고치면 될까요?
계속 고치다가 안돼서 여쭤봅니다... 고수님들 부탁드립니다....
$('body').on('click','a.delete_image', function(e){
e.preventDefault();
$('.removeImg').parent().remove('');
});
function preview(arr){
arr.forEach(function(f){
//div에 이미지 추가
var str = '<div style="display: inline-flex;"><li class="removeImg" style="width: 120px; overflow: hidden; margin-right: 2%; height: 120px; list-style:none; object-fit: cover; border-radius: 15px; border: 2px solid #dbdbdb;">';
str += '<span style="float:right;"><a class="delete_image" href="#"><img class = "delete-btn" src="/img/remove_icon.svg"></a></span><br>';
//이미지 파일 미리보기
if(f.type.match('image.*')){
var reader = new FileReader(); //파일을 읽기위한 FileReader객체 생성
reader.onload = function(e) { //파일을 읽어들이기를 성공했을 때 호출되는 이벤트 핸들러임
str += '<img src="'+e.target.result+'" width=150 height=150 />';
str += '</li></div>';
$(str).appendTo('#img_preview');
// str++;
}
reader.readAsDataURL(f);
}
});
}
답변 2
$('.removeImg').parent().remove('');
===>
$(this).parent().parent().parent().hide();
또는
$(this).parent().parent().parent().remove();
forEach대신 map이라던가 value와 index를 표시할 만한 걸 쓰고
<div id=`removeImg${index}`> 이렇게 인덱스를 표식을 넣은 후에
클릭 했을 때 e.target.id를 삭제해라 이런식으로 가면 안될까요?
답변을 작성하시기 전에 로그인 해주세요.