0

Web ページで表の行のドラッグ アンド ドロップを有効にしました (以下のコード)。残念ながら{ revert: invalid }、行を使用すると元の場所に戻りますが、わずかにずれています。約 5px 右下にあるように見えます。テーブル行全体を複製するので、これは奇妙に思えます。誰でも理由を説明できますか?

function setupDragDrop(source, target) {
    source.draggable({
        revert: 'invalid',
        opacity: 0.9,
        cursor: 'move',
        helper: function(event) {
            var target = $(event.target).closest('tr');
            var target_children = target.children();

            var clone = target.clone();

            clone.children().width(function(i,val) {
                return target_children.eq(i).width();
            });

            return $('<div class="configbox drag-row"><table class="lanes"></table></div>')
                .find('table').append(clone).end();
        },
        start : function() {
            //this.style.display="none";
        },
        stop: function() {
            //this.style.display="";
        },
        appendTo: 'body'
    });

    target.droppable({
        drop: function(event, ui) {
            $(this).parent().append(ui.draggable);
        },
        accept: source.selector
    });
}
4

1 に答える 1

0

回避策として、次のような奇妙なオフセットを考慮して元の開始位置を変更するように元に戻す機能を変更しました。

revert: function (event, ui) {
    //overwrite original position
    $(this).data("draggable").originalPosition = {
        top: $(this).data("draggable").originalPosition.top - 9,
        left: $(this).data("draggable").originalPosition.left - 9
    };
    return !event;
},
于 2012-06-13T12:49:06.440 に答える