• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 웹개발 기능대회

웹개발 기능대회

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #94445

    김지원
    참가자
    안녕하세요 선생님 ! 웹개발 기능대회 문제 풀던 중 막히는 부분이 있어서 질문 남깁니다.
    
    
    const row = document.querySelector('.row')
    let products = []
    // 초기화면
    fetch('store1.json')
        .then(res => res.json()) // 받아온 JSON -> object로 변환
        .then(data => {
            products = data.products;
            data.products.forEach(function(a,i){
            let templete = `<div class="col-md-3">
                    <div class="item" draggable="true" data-id="${a.id}">
                            < img src="${a.photo}">
                            <h4 class="title">${a.title}</h4>
                            <p>가격 : ${a.price}</p>
                            <div class="btn btn-dark">담기</div>
                        </div>
                    </div>`
             row.insertAdjacentHTML('beforeend', templete)
        })
        })
        .catch(error => {
            console.log(error)
        })
    
    이렇게 데이터를 받아오고 드래그&드랍 이벤트 구현하려고 itme을 찾으려고 했는데
    const item = document.querySelectorAll('.item')
    console.log(item)
    콘솔창에 각각의 item들이 안나오고 NodeList[]라고 뜹니다.
    어떻게 해야 동적으로 생성한 html요소들을 출력할수있는건가요 ? ㅠㅠ
    
    
    #94461

    김지원
    참가자
    해결했습니다 ! 그런데 한가지 문제가 더있어요 ..
    
    
    const item = document.querySelectorAll('.item')
             const basket = document.querySelector('.basket')
             for(i=0; i<4; i++){
                item[i].addEventListener('dragstart',function(e){
                    e.dataTransfer.setData('id', e.target.dataset.id)
                })
             }
             basket.addEventListener('dragover', function(e) {
                e.preventDefault();
                e.stopPropagation();
             })
             basket.addEventListener('drop',function(e) {
                e.preventDefault();
                e.stopPropagation();
                let productId = e.dataTransfer.getData('id');
                basket.appendChild(item[productId])
             })
    
    
    이렇게 코드를 짜서 드래그 드랍은 되는데 
    상품이 원래있던 위치에서 아예 옮겨진다해야되나 ?? 톡 떼져서 장바구니 영역으로 이동하고 그 영역은 비워진채로 남아있습니다  ㅠㅠ
    도와주세요 .... ㅠㅠㅠㅠㅠㅠㅠ
    #94471

    codingapple
    키 마스터
    https://stackoverflow.com/questions/19783077/javascript-keep-the-original-image-after-dropping-it-in-another-container
    .cloneNode 라는거 써봅시다
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠