2

私はいくつかの特定の状況を持っています: ここに画像の説明を入力 写真はそれが非常に良いことを示しています. だから私は次のアクションを開発しています:

  • Sortable Div には.sortable()、それ自体にメソッドがあります。そして、ソート可能なアイテムはうまくソートされます。
  • DroppableDiv には.droppable()、それ自体にメソッドがあります。また、DragItems には独自のメソッド.draggable()があります。

私の問題

私がやりたいのは、Container から DragItem がドロップされたソート可能なアイテムを処理することです。 ここに画像の説明を入力

この例では、 にドラッグ アンド ドロップDragItem 2していSortable Item 2ます。そして、私はSortable Item 2内で処理する必要がありますDroppableDiv.droppable({drop : function(event, ui) {}});

検索eventしてui異議を唱えましたが、解決策が見つかりませんでした。

また、申し訳ありませんが、私は anny fiddle を提供していませんが、jsfiddle/jsBin で実際の例を作成する際に問題があります。

どんな助けでも大歓迎です。

4

1 に答える 1

1

この場合、私は自分の関数を書きました:

function findPosition(position) {
    var container = $("#DroppableDiv");
    var sortableItems = container.find("li");
    var searchedItem = null;

    for (var i = 0; i < sortableItems.length; i++) {
        var item = sortableItems.eq(i);
        var itemPosition = item.position();
        var itemWidth = item.css('width');
        var itemHeight = item.css('length');

        if (position.left < parseFloat(widgetPosition.left) + (parseFloat(widgetWidth) * 0.75) && position.top < parseFloat(widgetPosition.top) + (parseFloat(widgetHeight) * 0.75)) {
            searchedItem = widget;
            break;
        }
    }

    return searchedItem;
}

次から呼び出されました:

    $("#DroppableDiv").droppable({
        accept: 'li',
        drop: function (event, ui) {
            //here is little trick for check is event comes from drag or sort(only in my case)
            if (ui.draggable.context.childElementCount === 0) {
                var newWidgetPosition = findPosition(ui.position);
            }
        }
    });
于 2013-01-25T12:58:04.893 に答える