Drag & Drop 기능 사용하기

드래그 기능 설정

// 마우스 기능 생성 id
_mouseID = '드래그 마우스 이벤트 ID';

// dnd 기능 식별 (id)
_dndID = '드래그&드랍 아이디';

removeUI(){
    if(!_mouseID) return;

    $self.dnd.removeDrag(_mouseID);
    $self.dnd.destroy(_mouseID);

    _mouseID = null;
    _dndID = null;
}

createUI() {
    $self.dnd.create(_mouseID);
    $self.dnd.setDrag(_mouseID , {
        id: _dndID,
        element: $self.uid,
        ghostName: 'ghost-drager-container',

        dragStart: onDragStart,
        dragEnd: onDragEnd
    });
}

onDragStart(e, dragData){
    // e.preventDefault();

    // ghost 이미지 표시 위해 id가 필요함
    dragData.selects = {
        id: _mouseID
    };
    // document.body.classList.add("being-dragged");
    
    // drop 이벤트으로 임의의 데이터 전달
    dragData.start = '드래그 시작 값 설';
}

onDragEnd(e, dragData){
    // console.error("being-dragged");
    // document.body.classList.remove("being-dragged");
}

드랍 기능 설정

// 마우스 기능 생성 id
_mouseID = '드랍 마우스 이벤트 ID';

// dnd 기능 식별 (id)
_dndID = '드래그&드랍 아이디';

removeUI(){
    if(!_mouseID) return;

    $self.dnd.removeDrop(_mouseID);
    $self.dnd.destroy(_mouseID);

    _mouseID = null;
    _dndID = null;
}

createUI() {
    $self.dnd.create(_mouseID);
    $self.dnd.setDrop(_mouseID , {
        id: _dndID,
        element: $self.uid,

        isDropAllowed: isDropAllowed,
        dragEnter: onDragEnter,
        dragOver: onDragOver,
        dragLeave: onDragLeave,
        drop: onDrop
    });
}

// dragData, dropData 는 드래그 이벤트에서 설정된 값임
isDropAllowed(dragData) {
    return (dragData && dragData.selects);
}

onDragEnter(e, dragData){}

onDragOver(e, dragData){
    dragData.end = '드랍했을때 전달값 지정';
}

onDragLeave(e, dropData){}

onDrop(e, dropData){
    console.error('Drag&Drop 결과: ', dropData.start, '-->', dropData.end);
}

Last updated