0

我已经在我的网页上启用了拖放表格行(下面的代码)。不幸的是,当我使用{ 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 回答