jQuery UI可排序连接列表 - 当项目滚动到新列表时未触发事件

时间:2015-06-30 16:51:47

标签: javascript jquery jquery-ui jquery-ui-sortable

尝试创建类似于iPhone的类似排序功能。我注意到,当项目滚动到"时,连接列表不会立即检测到可排序的项目。连接列表。

看看这个JSFiddle。您会注意到,当第一个列表中的可排序项目滚动到第二个列表时,不会立即触发over event。您必须先在事件触发前移动鼠标。当您在触发事件之前松开鼠标时,这将成为一个问题,这会将项目保留在第一个列表中。这是一个jQuery错误吗?有什么工作吗?

这是我的javaScript:

$(function () {
$("#sortable1, #sortable2").sortable({
    connectWith: ".connectedSortable",
    over: function () {
        alert("Over");
    },
    start: function () {
        $("#wrapper").animate({
            'scrollLeft': '+=330px'
        });
    },
    scroll: false
}).disableSelection();

});

请注意,我确实想使用jquery ui可排序滚动选项。页面应该自动滚动到正确的位置。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以等到scroll动画并将placeholder放在新sortable中。像这样:

 start: function (e, ui) {
            var cur_helper = ui.placeholder
            $("#wrapper").animate({
                'scrollLeft': '+=330px',

            }, function () {
                //you place it before equivalent position in sortable1
                $('#sortable2 > li').eq(ui.item.index()).before(cur_helper)

            });
        },

小提琴:https://jsfiddle.net/um9vggb1/2/