0

jQueryUI (最新バージョン) でのドラッグ アンド ドロップに少し問題があります。

私はドラッグ可能なものを持っていますが、それはそれほど特別なことではありません。ドロップ場所は 2 つありますが、親子ではありません。

最初のドロップ可能なものは、2 番目のもののすぐ上にあります。2 番目のドロップ可能要素は、スクロール可能な div 内にあります。そして、そのdivが少し下にスクロールしたときに問題が発生します。div がスクロールすると、2 番目のドロップ可能オブジェクトは効果的に上に移動しますが、これは隠されています。

Chrome で要素インスペクターを使用すると、強調表示されていることがわかります。

最初のドロップ可能オブジェクトにドラッグ可能オブジェクトをドロップすると、両方のドロップ可能オブジェクトが起動されますが、最初のドロップ可能オブジェクトのみが起動されます。

「greedy: true」を使用しても機能しないようです。おそらく、親子ではないためです。

それらが発射される順序は予測可能です。1 つ目 (目に見えるドロップ可能) が最初に起動され、次に 2 つ目 (実際には見えません) が起動されます。

2番目のドロップ可能アイテムが発火するのを防ぐ方法はありますか?

jsfiddle example

http://jsfiddle.net/vQuZf/1/

4

1 に答える 1

0

もう少し詳しく調べたところ、現在2つの可能な解決策があることがわかりました。

1)ページ上の要素を移動すると、重複がなくなります。この方法では、「ダブル ドロップ」は発生しません。

2) ドロップ時にも実行されるカスタム コードをドロップ可能に追加します。これにより、ドロップされた要素が最後にドロップされたときのタイムスタンプでマークされます。他の要素はこれをチェックでき、X 秒以内にドロップされた場合はドロップを無視する必要があります。

解決策として 2 つの異なる実装が可能ですが、最初の実装で削除された要素をマークして、2 番目の実装でそれをチェックできるという意味では、それらはすべて似ています。

私の場合は、ソリューション番号 1 を使用しました。これは、とにかくページのレイアウトが改善されることが判明した最も優れたソリューションであるためです。

于 2013-08-18T09:18:49.517 に答える