1

我正在做一个项目,这是一个简单的待办事项列表。您可以拖动任务并重新排列它,我已将任务设置为containment包含它们的 div。

但是当你想把一个任务放在顶部时,你只需将它拖到顶部,容器 div 就会阻止它在顶部的当前任务之上。

我想修改可排序的插件,10px在顶部和底部添加一个额外的,所以任务不会完全停在 div 的顶部,但在它之外,10px同样会到达容器 div 的底部。

自己尝试一下以了解我的意思。在这里。添加几个任务并尝试将一些任务放在容器的顶部。

我尝试sortable使用开发包进行修改,我到了这些行但不知道要修改什么:

   if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
       var c = $(o.containment);
       var ce = c[0]; if(!ce) return;
       var co = c.offset();
       var over = ($(ce).css("overflow") != 'hidden');

       this.containment = [
           (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),
           (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0),
           (over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right,
           (over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top  - this.margins.bottom
       ];
    this.relative_container = c;

    }
4

1 回答 1

2

嗯,看来我已经解决了,对于遇到此问题的任何人,请将此选项添加到sortable

tolerance: "pointer"

这是拖动期间重新排序的行为方式。可能的值:“相交”、“指针”。在某些设置中,“指针”更自然。

  • intersect : draggable 与 droppable 重叠至少 50%
  • 指针:鼠标指针与可放置对象重叠

奇怪的intersect是,默认值是默认值,最好pointer是默认值。

于 2012-09-02T15:49:36.457 回答