1

ソート可能でソート可能な要素のリストがあります。ソート可能なリストの外にあるドロップ可能なものもあります。ドロッパブルにアイテムをドロップすると、コピー操作を実行することが意図されています。つまり、この操作中の並べ替えは望ましくありません。

残念ながら、ソート可能オブジェクトを外部のドロップ可能オブジェクトにドラッグすると、sortable.update が起動します。ソート可能な要素が特定の要素の外にドラッグされた場合、すべてのソート可能なドラッグ/ドロップ イベントを無視する方法はありますか?

関連するすべてのソート可能なイベントを調べましたが、共通の親があるかどうかを確認するために、ソート可能なイベントがドロップされた要素への参照が見つからないようです。

ここに実証するフィドルがあります:http://jsfiddle.net/6yhbG/

ソート可能な 1/2 をドロップ可能なものにドラッグすると、 が起動しsortable.sortます。

4

1 に答える 1

4

OKは最終的にそれの底に達しました:sortable('cancel')から呼び出す必要がありsortable.stop、ソート可能にクラスを追加するだけで、それ自体をキャンセルするかどうかを認識します:

$('div').droppable({
    drop: function(e, ui) {
        ui.draggable.parent().addClass('dropped');
    }
});

$('ul').sortable({
    stop: function(){
        if ($(this).hasClass('dropped')){
            $(this).sortable('cancel');
            $(this).removeClass('dropped');
        }           
    }
});

私の更新された例: http://jsfiddle.net/6yhbG/1/

于 2013-01-20T06:59:48.920 に答える