2

我有两个包含多个 div 并且可以滚动的 div。我有一个垂直 div,它在包含的 div 上有可拖动的。我的水平 div 是可排序的,我通过 connectToSortable 将可拖动对象连接到它。

重新排列项目时,水平排序可以水平滚动。但是,如果我从垂直拖动到水平,它不会像我进行纯排序时那样滚动水平 div。

我已经阅读了此处的所有条目,用于使用 scrollTo 和衍生工具等插件滚动 div,但它们对我的特定问题没有帮助。我正在使用 jQuery 1.8.3 和 jQuery UI 1.9.2

我可以放入视口,但我希望我的用户能够像排序时那样拖动并让水平滚动工作。如果我放在可见区域然后排序,它将滚动 div。

谢谢!

$(".playboxresults, .playboxrecommended").draggable({
        revert: "invalid",
        opacity: 0.95,
        containment: 'document',
        connectToSortable: "#divCurrentList",
        helper: function () {
            $copy = $(this).clone();
            return $copy;
        },
        appendTo: 'body',
        scroll: true,
        start: function (e, ui) {
            draggedItem = ui.item;
        }
    });
4

1 回答 1

1

这是因为当您使用 append to body 时,helper 成为 body 的一部分,因此不会滚动水平 div。

我也正在实现此功能,并通过sdespont找到了解决方法

helper: function(){
     $('#horizontalDiv').append('<div id="clone">' + $(this).html() + '</div>');
     $("#clone").hide();
     setTimeout(function(){
         $('#clone').appendTo('body');
         $("#clone").show();
     },1);
     return $("#clone");
},

这首先使您的水平 div 的助手部分,然后将其附加到正文。

希望这可以帮助。

你也可以参考这个

于 2013-01-29T09:09:04.217 回答