【问题标题】:jQuery sortable with containment parent and different item heightsjQuery 可排序,包含父级和不同的项目高度
【发布时间】:2012-07-17 10:23:42
【问题描述】:

请连同jsFiddle一起阅读这个问题。

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

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

我尝试使用附加选项 tolerance:'pointer'(我的偏好)但未成功,它也不适用于默认 tolerance:'intersect'

我从docs 了解到,这是tolerance 的预期行为,并且在项目具有相同高度时工作得非常好。

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

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-sortable


    【解决方案1】:

    添加选项cursorAt: { top:1 } 解决了这个问题。链接到docs

    不幸的是,我随后发现在尝试将高项目拖到列表底部时也存在同样的问题。

    最后我的解决方案是破解jquery.ui.sortable.js 中的_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._getDragVerticalDirection() == "up" ? 0 : this.helperProportions.height), b.top, b.height),

    现在向上或向下拖动任何高度的任何项目都可以正常工作。

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 1970-01-01
      • 2013-07-02
      • 2013-07-31
      • 2020-02-17
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      相关资源
      最近更新 更多