jQuery UI 可排序包含无法检测到占位符

jQuery UI Sortable containment unable to detect placeholder

本文关键字:检测 占位符 包含无 UI 排序 jQuery      更新时间:2023-09-26

所以我正在开发这个应用程序,我希望人们能够将项目从一个表数据拖到另一个表数据,这些数据必须包含在父表行中。

但是每当我拖动它时,它似乎都会粘在包含范围内,不包括任何占位符的高度。

自己尝试一下:http://jsfiddle.net/2wy8R/

知道如何让它选择父级的父级吗?那么,我怎样才能让占位符计数呢?

问候

.

更新:问题 http://youtu.be/PMXcQvJmRGw 的YouTube视频

好的,你开始吧。覆盖默认包含,因为它似乎与您的方案有问题。让我知道这是否不是一个好主意,但它似乎有效:

http://jsfiddle.net/2wy8R/6/

$('#first, #second').sortable({
    connectWith: '.sortable',
    placeholder: 'placeholder',
    start: function(event, ui) {
        ui.placeholder.height(ui.item.height() - 4);
        var p = $(ui.helper);
        var tr = p.closest("tr");
        $(document).mousemove(function(e) {
            var pOffset = p.offset();
            var trOffset = tr.offset();
            if (pOffset.left < trOffset.left) {
                p.css({left: trOffset.left});   
            }
            if (pOffset.left + p.width() > trOffset.left + tr.width()) {
                p.css({left: trOffset.left + tr.width() - p.width()});   
            }
            if (pOffset.top < trOffset.top) {
                p.css({top: trOffset.top});   
            }
            if (pOffset.top + p.height() > trOffset.top + tr.height()) {
                p.css({top: trOffset.top + tr.height() - p.height()});   
            }
        });
    }
}).disableSelection();

不过要小心,因为这会不断向文档添加鼠标移动事件。 您可能需要在绑定之前取消绑定鼠标移动...