1

据我了解,可拖动 UI 的辅助选项只是此处所述的显示效果。

但是当它与表格一起使用时,它似乎有问题(附加位置是错误的)。

示例:http: //jsfiddle.net/hmj83/

$(".no_clone_item").draggable({
    revert: 'invalid'
});

$(".clone_item").draggable({
    helper: 'clone',
    revert: 'invalid'
});

$("td").droppable({
    drop: function (event, ui) {
        $(ui.draggable).appendTo(this);
    }
});

谁能解释这种行为或提供解决方法/修复?

谢谢。

4

2 回答 2

2

Tim 建议的解决方案有效,但在我的应用程序中实施时我失去了一些功能。

相反,我保留了辅助克隆,并在拖动时隐藏了原始文件,并在拖动停止时重新显示它。

draggable({
    start: function(event, ui) {
        $(this).hide();
    },
    stop: function(event, ui) {
        $(this).show();

    }
});
于 2013-05-27T04:00:44.870 回答
1

我相信最简单的方法是使用 CSS on 重置定位.drop()

ui.draggable.css({ left: 0, top: 0 }).appendTo(this);

这至少会解决你的问题。

注意:ui.draggable - 当前可拖动元素,一个 jQuery 对象

演示:http: //jsfiddle.net/tive/mJkd5/

jQuery UI 之所以添加 css 属性topleft拖拽元素只是为了视觉反馈。您可以通过添加以下 CSS 在您的解决方案中对此进行测试:

td img.no_clone_item {
    left: auto !important;
    top: auto !important;
}

启用此 CSS 后,您将没有视觉反馈。只有在放置项目时才会在视觉上移动。

.draggable()接收到一个克隆元素时,该位置被添加到克隆元素中以进行视觉反馈。

于 2013-05-26T07:07:43.297 回答