0

ドロップ可能なExcelグリッドとドラッグ可能な孤立したコンテナがあります。孤立したコンテナーは画面の 1/3 を占め、ドロップ可能な Excel グリッドの上部にある固定位置にあるため、ドロップ可能なグリッド内を移動できます。これらのアイテムを孤立したコンテナーからその背後にあるドロップ可能なバケットにドラッグします。孤児コンテナにアイテムをかろうじてドラッグすると、ドロップ可能なコンテナの後ろに移動して挿入されることがあります。それを行わない方法はありますか?孤立したコンテナーの外に移動されていない場合は、孤立したコンテナーにとどまります。

下の画像は、予定外のゲームと呼ばれる孤立したコンテナーを示しています。B1 と B2 をかろうじてドラッグすると、孤立したコンテナーにとどまるのではなく、その背後にある小さなコンテナーにドロップされます。だからそのまま消えてしまったようです。

ここに画像の説明を入力

アップデート:

両方のドロップ可能な「ドロップ」イベントがヒットしていることに気付きました。孤立したコンテナーがヒットし、次に 2 番目のコンテナーがヒットし、2 番目のコンテナーがそれを受け入れます。

4

2 に答える 2

1

ドラッグ可能なアイテムにクラスを追加し、孤立したコンテナーのオーバー/アウト イベントでクラスを削除することで、これを修正しました。

            over: function( event, ui ) {
                $(ui.draggable).addClass('orphan-droppable');
            },
            out: function (event, ui) {
                $(ui.draggable).removeClass('orphan-droppable');
            }

要素がドロップ可能なグリッドにあるかどうかをテストし、要素でクラスが見つかった場合は無視します。

 drop: function (event, ui) {

                        if (!$(ui.draggable).hasClass('orphan-droppable')) {
// Work on element
}
于 2013-08-16T18:51:45.330 に答える
0

ドロップ可能なグリッドを無効にして、孤立したコンテナの「out」および「over」イベントをリッスンしてみてください。out がトリガーされるとグリッドが有効になり、on になると再び無効になります。

于 2013-08-15T22:13:49.823 に答える