jQuery Sortable:如何编辑包含属性行为

时间:2012-09-02 15:33:20

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

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

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

我想修改可排序插件,在顶部和底部添加额外的10px,因此任务不会完全停在div的顶部,而是超出10px并且同样位于容器div的底部。

亲自尝试理解我的意思。 here。添加几个任务,并尝试将一些任务放在容器的顶部。

我尝试使用开发包修改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;

    }

1 个答案:

答案 0 :(得分:2)

嗯,似乎我已经解决了这个问题,对于有此问题的任何人都可以将此选项添加到sortable

tolerance: "pointer"
  

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

     
      
  • 相交:draggable与droppable重叠至少50%
  •   
  • 指针:鼠标指针与可放置的
  • 重叠   

奇怪的是,intersect是默认值,可以更好地使pointer成为默认值。