我在页面上有一个 jQueryUI 可拖动对象和一个可排序对象。
将一个元素从 draggable 拖动到 sortable 会导致被拖动的元素跳到页面的左上角。
这是演示:http: //jsfiddle.net/travisrussi/aBhDu/1/
重现:
- 将“项目 5”从可拖动的 div(顶部框)拖动到可排序的 div(底部框)
实际结果:
- 项目 5 拖动到可排序对象时跳转到左上角 - http://i.stack.imgur.com/474OP.jpg
似乎拖动的元素从相对定位切换到绝对定位。拖动的“li”从以下位置切换:
<li class="ui-state-default ui-draggable" style="position: relative; left: 52px; top: 9px;">Item 3</li>
对此:
<li class="ui-state-default ui-draggable ui-sortable-helper" style="position: absolute; left: 67px; top: 91px; width: 80px; height: 20px;">Item 3</li>
当可拖动项被拖动到可排序对象中时。
这是来自 jQueryUI 1.8.12 的相关片段(从第 3041 行开始):
//The element's absolute position on the page minus margins
this.offset = this.currentItem.offset();
this.offset = {
top: this.offset.top - this.margins.top,
left: this.offset.left - this.margins.left
};
// Only after we got the offset, we can change the helper's position to absolute
// TODO: Still need to figure out a way to make relative sorting possible
this.helper.css("position", "absolute");
this.cssPosition = this.helper.css("position");
$.extend(this.offset, {
click: { //Where the click happened, relative to the element
left: event.pageX - this.offset.left,
top: event.pageY - this.offset.top
},
parent: this._getParentOffset(),
relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
});
//Generate the original position
this.originalPosition = this._generatePosition(event);
this.originalPageX = event.pageX;
this.originalPageY = event.pageY;
是否有一些我没有使用的配置选项?
CSS有问题吗?
或者这是 jqueryUI 中的一个错误?