0

jquery.event.drag/dropを使用してツリーを完全に並べ替えます

並べ替えには、このデモに基づいてカスタムの「許容範囲」関数を使用します

ツリーが小さい場合はすべて完璧に動作しますが、一部のデータ (>2k) では非常に遅いです

ツリーの開閉ノードとして、実際のドロップ ターゲットは通常 ~50 ですが、コードはフィルターを必要とせず、2k 要素上でカーソルが移動するたびに計算します..

利用可能なドロップターゲットをフィルタリングする方法を試しましたが、成功しませんでした

たとえば、dropinit イベントに次のように入力します。

return $(this).is( $availableDrop );

または $.drop オプションでフィルター オプションを設定します

filter:".validdrop"

私は現在0を返します。現在の要素が許可されていない場合の許容関数で...

~~~~ 使えますが、それでも地獄のように遅いです

は最小限のものでフィドルを設定しました助けてくださいオビワンケノービあなたは私の唯一の希望です

4

1 に答える 1

0

わかりました、それは完全な「ライブ」の原因でした。すべてを専用関数に抽出し、最初の要素と将来の要素で古典的な初期化を使用します。

$.fn.initDrag = function(){
    $(this).drag('init',draginit).drag('start',dragstart).drag('end',dragend).drag(indrag).drop('init',dropinit);
};

$(selector).initDrag();

高速バージョンのフィドル:)

于 2013-04-20T14:34:41.537 に答える