2012-07-17 3 views
3

이 질문을 함께 jsFiddle와 함께 읽으십시오.jQuery 포함 모체 및 다른 항목 높이로 정렬 가능

드래그하는 동안 부모 컨테이너 내의 항목을 포함 할 수있는 jQuery Sortable 목록이 있습니다. 아무런 문제가 없습니다. containment:'parent' 옵션을 사용합니다.

그러나 두 번째 항목의 높이가 첫 번째 항목의 높이보다 큰 경우 두 번째 항목을 첫 번째 위치로 끌 수 없습니다.

추가 옵션 tolerance:'pointer' (내 기본 설정)을 사용하지 못했거나 기본 tolerance:'intersect'으로 작동하지 않았습니다.

docs에서 이것은 tolerance의 예상되는 동작이며 항목 높이가 같을 때 절대적으로 작동 함을 이해합니다.

두 번째 항목의 높이가 첫 번째 항목보다 큰 시나리오가있을 수 있습니까?

답변

3

cursorAt: { top:1 } 옵션을 추가하면 문제가 해결됩니다. docs에 링크하십시오.

키가 큰 항목을 목록의 맨 아래로 끌 때 동일한 문제가 있음을 발견했습니다.

결국 내 솔루션은 _intersectsWithPointer 함수를 해킹하여 jquery.ui.sortable.js 내에있었습니다.

은 내가 대체했다 :

var c = this.options.axis === "x" || a.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, b.top, b.height),

로 :

var c = this.options.axis === "x" || a.ui.isOverAxis(this.positionAbs.top + (this._getDragVerticalDirection() == "up" ? 0 : this.helperProportions.height), b.top, b.height),

지금 상향 어떤 높이의 항목을 드래그하거나 아래로 절대적으로 잘 작동합니다.

관련 문제