2011-08-22 5 views
3

다음과 같은 작업을 수행하려고하는데이 작업을 수행하는 올바른 방법을 찾을 수 없습니다.jQuery UI draggable - 유효한 드롭이 발생하면 복제본 제거

오른쪽에서 왼쪽으로 끌 수있는 두 개의 열이 있습니다. 드롭 기능이 올바르지 않은 경우 되돌리기 기능이 제대로 작동하지만 왼쪽 열에 유효한 드롭이 발생하면 오른쪽 열의 항목을 제거하고 싶습니다. 조건부가 정확하지 않다는 것을 알고 있지만 드롭이 유효한지 확인하기 위해 어떤 플래그를 조사해야할지 모르겠습니다.

$("#sortable2 li").draggable({ 
     connectToSortable: "#sortable1", 
     helper: "clone", 
     revert: "invalid", 
     stop: function (event, ui) { 
      if (drop == "valid") 
      { 
       $(this).remove(); 
      } 
     } 
    }); 

답변

13
당신은,

당신은 아무것도를 정렬하지 않는 경우 .sortable

example jsfiddle

$("#sortable1").sortable({ 
    receive: function (event, ui) { // add this handler 
     ui.item.remove(); // remove original item 
    } 
}); 

$("#sortable2 li").draggable({ 
    connectToSortable: "#sortable1", 
    helper: "clone", 
    revert: "invalid" 
}); 
+0

. 감사! – Aaron

+0

첫 번째 목록의 요소를 두 번째 및 두 번째에서 1st로 이동할 수 있도록 위 예제를 수정했습니다. 하지만 일단 요소가 다른 목록으로 옮겨지면 원래 목록으로 돌아갈 수 없습니다. –

0

시작로서 당신은 event-startevent-stop의 차이점을 비교할 수 있습니다. 디버거를 사용하여 이벤트 함수로 들어가면 둘 사이의 차이점을 볼 수 있습니다.

0

receive 이벤트를 사용하여 원래 요소를 제거 처리하고 드롭이 유효한 경우 원래 항목을 제거 할 수 할 수 있습니다 helper:"clone"을 삭제하면됩니다. 내가 실종 정확히 무엇

$("#sortable2 li").draggable({ 
    revert: "invalid", 
}); 
관련 문제