1

私はプロジェクトを作成しています。これは単純な todo リストです。タスクをドラッグして再配置できます。タスク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'、'pointer'。一部の設定では、「ポインター」の方がより自然です。

  • intersect : ドラッグ可能はドロップ可能と少なくとも 50% オーバーラップします
  • pointer : マウス ポインターがドロップ可能に重なる

奇妙なことに、intersectがデフォルト値であり、作成する方がはるかに優れている可能性がある場合は、デフォルト値pointerです。

于 2012-09-02T15:49:36.457 に答える