[javascript] jQuery를 사용한 드래그 앤 드롭 기능 구현 방법

드래그 앤 드롭(drag and drop) 기능은 웹 애플리케이션에서 요소를 마우스로 끌어서 다른 위치로 이동시키는 기능입니다. 이 기능을 구현하기 위해 jQuery를 사용할 수 있습니다.

1. jQuery UI 라이브러리 추가

드래그 앤 드롭 기능을 구현하기 위해 먼저 jQuery UI 라이브러리를 추가해야 합니다. 다음은 CDN을 통해 jQuery UI 라이브러리를 추가하는 방법입니다.

<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

위 코드를 HTML 문서의 <head> 태그 내에 추가하면 됩니다.

2. 드래그 앤 드롭 요소 설정

드래그 앤 드롭 기능을 적용하고자 하는 요소에 draggable() 함수를 사용하여 드래그 가능하게 만들어야 합니다. 예를 들어, 아래의 HTML 코드에서 #dragElement라는 id를 가진 요소를 드래그 앤 드롭 가능하게 만들겠습니다.

<div id="dragElement">
  드래그 앤 드롭할 내용
</div>

다음은 draggable() 함수를 사용하여 해당 요소를 드래그 가능하게 설정하는 코드입니다.

$(document).ready(function() {
  $("#dragElement").draggable();
});

위 코드는 문서가 준비되면 실행되므로, 페이지 로드 후 #dragElement 요소가 드래그 가능한 상태가 됩니다.

3. 드롭 영역 설정

드래그 앤 드롭 기능을 적용하고자 하는 드롭 영역을 설정해야 합니다. 드롭 영역은 다른 요소를 드롭할 수 있는 위치입니다. 예를 들어, 아래의 HTML 코드에서 #dropZone라는 id를 가진 요소를 드롭 영역으로 설정하겠습니다.

<div id="dropZone">
  여기에 드롭할 내용
</div>

드롭 영역을 설정한 후에는 droppable() 함수를 사용하여 해당 요소를 드롭 가능한 영역으로 만들어야 합니다. 다음은 droppable() 함수를 사용하여 #dropZone 요소를 드롭 가능하게 설정하는 코드입니다.

$(document).ready(function() {
  $("#dropZone").droppable();
});

위 코드를 추가하면 #dropZone 요소가 드롭 가능한 영역이 되며, 다른 요소를 해당 영역에 드롭할 수 있습니다.

4. 드롭 이벤트 처리

드롭 이벤트가 발생했을 때 원하는 동작을 처리해야 합니다. droppable() 함수에 drop 이벤트 핸들러를 추가하여 드롭 이벤트를 처리할 수 있습니다. 예를 들어, #dropZone에 다른 요소를 드롭했을 때 alert() 함수를 사용하여 알림창을 띄우는 코드는 다음과 같습니다.

$(document).ready(function() {
  $("#dropZone").droppable({
    drop: function(event, ui) {
      alert("요소가 드롭되었습니다!");
    }
  });
});

위 코드를 추가하면 #dropZone에 다른 요소를 드롭하면 “요소가 드롭되었습니다!”라는 알림창이 뜹니다.

마무리

이제 jQuery를 사용하여 간단한 드래그 앤 드롭 기능을 구현하는 방법에 대해 배웠습니다. 이를 응용하여 복잡한 드래그 앤 드롭 기능을 구현할 수 있습니다. 자세한 내용은 jQuery UI 공식 문서를 참고하시기 바랍니다.

참고 자료