【问题标题】:jQuery Sortable: how to edit containment property behaviorjQuery Sortable:如何编辑包含属性行为
【发布时间】:2012-09-02 15:33:19
【问题描述】:

我正在制作一个项目,它是一个简单的待办事项列表。您可以拖动任务并重新排列它,我已将任务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;

    }

【问题讨论】:

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


    【解决方案1】:

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

    tolerance: "pointer"
    

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

    • 相交:可拖动对象与可放置对象重叠至少 50%
    • pointer:鼠标指针与 droppable 重叠

    奇怪的是,intersect 是默认值,而将pointer 设置为默认值会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-06
      • 2012-03-21
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      相关资源
      最近更新 更多