클래스가있는 테이블이 있습니다 : .screens
, 셀은 삭제 가능합니다. 셀의 목록에서 항목을 드래그 할 수 있습니다. 또한 사용자가 항목을 삭제 한 위치를 계산하여 올바른 위치에 표시하려고합니다. 그러나 사용자가 첫 번째 셀을 제외한 셀에 항목을 놓으려고하면 드롭 위치가 잘못 계산됩니다. 이 계산을위한 코드는 다음과 같습니다.드롭 가능한 요소 위치가 잘못 계산됩니다.
var pos = ui.draggable.offset(), dPos = $(this).offset();
var droppedTop = ui.position.top - $(this).offset().top + $('#mainContainer').scrollTop();
var droppedLeft = ui.position.left - $(this).offset().left + $('#mainContainer').scrollLeft();
그런 다음 드롭 된 항목에 위 및 왼쪽 위치를 할당합니다. 이 코드는 테이블이 없지만 div 만 있으면 완벽하게 작동합니다. 바이올린은 다음과 같습니다 : https://jsfiddle.net/vaxobasilidze/moafzcx8/2/ 항목을 테이블로 드래그 앤 드롭하여 문제를 확인하십시오. 어떤 아이디어가 이것을 고치는 방법?
당신은'#의 mainContainer'이없는 다음은이 작업에 대한 코드입니다. –
@AndyG 필자는 그것을 피들에서 해결했지만 작동하지 않습니다. #mainContainer (now #mainDiv)는 스크롤 할 수있는이 테이블의 부모입니다. –
이 $ ('. screenContainer'). droppable (....)을 $ ('. screens'). droppable (....)로 변경합니다. 이렇게하면 개별 .screenContainer 요소가 아닌 전체 .screens 컨테이너를 기반으로 위쪽 및 왼쪽 위치가 설정됩니다. –