包含父项和不同项高度的jQuery可排序

包含父项和不同项高度的jQuery可排序,jquery,jquery-ui,jquery-ui-sortable,Jquery,Jquery Ui,Jquery Ui Sortable,请把这个问题和这个一起读 我有一个jQuery可排序列表,我希望在拖动时将项目包含在父容器中-没问题-我使用containment:'parent'选项 但是,当第二个项目的高度大于第一个项目的高度时,我无法将第二个项目拖动到第一个位置。 我尝试使用附加选项公差:'pointer'(我的首选项)失败,也无法使用默认的公差:'intersect' 我从中了解到,这是公差的预期行为,当项目高度相等时,效果绝对良好 对于第二个项目的高度大于第一个项目的情况,是否有解决方法?添加选项cursorAt:{

请把这个问题和这个一起读

我有一个jQuery可排序列表,我希望在拖动时将项目包含在父容器中-没问题-我使用
containment:'parent'
选项

但是,当第二个项目的高度大于第一个项目的高度时,我无法将第二个项目拖动到第一个位置。

我尝试使用附加选项
公差:'pointer'
(我的首选项)失败,也无法使用默认的
公差:'intersect'

我从中了解到,这是
公差的预期行为
,当项目高度相等时,效果绝对良好


对于第二个项目的高度大于第一个项目的情况,是否有解决方法?

添加选项
cursorAt:{top:1}
可以解决此问题。链接到

不幸的是,我后来发现,当试图将一个高项目拖到列表底部时,也存在同样的问题

最后,我的解决方案是破解
jquery.ui.sortable.js
中的
\u intersectsWithPointer
函数

我已取代:

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.\u getDragVerticalDirection()=“up”?0:this.helperProportions.height)、b.top、b.height),

现在,向上或向下拖动任何高度的项目都是完全正确的