2017-05-04 14 views
0

私は3つのテーブルを持つページを開発しています。 3番目のテーブルには、ソートして1番目または2番目のテーブルにドロップできる行があります。動的な "connectWith"オプションでjQuery UIをソート可能

他の2つのテーブルのいずれかで特定の行を削除できるかどうかを動的に定義する方法はありますか? 「connectWith」オプション...または他の方法で動かす...

答えて

0

jQuery UIの.draggable()メソッドを使用して、3番目のテーブルの行を定義できます。 ドラッグ可能なメソッドを呼び出すと、要素をドロップできる場所を指定できます。

次にtrのドラッグで、現在のテーブルを現在のテーブル(3番目のテーブル)から隠します。 trを削除したら、trを削除したテーブルを取得し、実際にtrを追加して、実際に3番目のテーブルから行を削除します。 ドラッグイベントがうまくいかない場合(たとえば、間違った場所にドロップした場合など)、行を再度表示できるので、最初は3番目のテーブルからすぐに行を削除しない方がよいでしょう。ここで

のjQuery UIのドラッグ可能な方法へのリンク:コードの

https://jqueryui.com/draggable/

POC:ご返信用

$("#third-table tr").draggable({ 
    snap: ".drop-tables", 
    start: function() { 
     // hide the row from the third table 
    }, 
    stop: function() { 
     // add the row to the target table 
     // remove the row from the third table 
    } 
}); 
+0

感謝。あなたは "要素をどこにドロップできるかを指定することができます"と言います。私が何かを見逃しているのか、あなたが提案した方法が静的で、私がすでにsortableの "connectWith"オプションを使っているのと同じですか?行を削除できるスクリプトを動的にtelle化するにはどうすればよいですか? – Mark

+0

Snap属性は、削除可能な要素のクラスを指定します。ドロップを許可したいすべての要素に同じクラスを使用してください。 – quirimmo

+0

いいので、N個のドラッグ可能なインスタンスを作成することをお勧めしますか?これは本当に唯一の方法ですか?テーブルが50個あればどうなりますか?私は本当に何かを動的にする必要があります。その上で、検証関数を実行し、trueまたはfalseを返してドロップを受け入れるか、またはそれを拒否します。 – Mark

関連する問題