Jquery UI可排序网格固定项目

时间:2016-06-27 01:12:18

标签: jquery jquery-ui grid jquery-ui-sortable sticky

我一直在花费一整天的时间来弄清楚如何使用固定/粘贴/锁定物品制作一个jquery ui可排序网格。

在堆栈和谷歌上搜索已经让我这么远:

 $(function() {
    $("#sortable").sortable({
        start: function () {
            $(this).find(".pinned").each(function () {
                $(this).data("fixedIndex", $(this).index());
            });
        },        
        change: function () {
            $(this).find(".pinned").each(function () {
                $(this).detach().insertAfter($("#sortable li:eq(" + ($(this).data("fixedIndex")-1) + ")"));
            });
        }
    });
});

https://jsfiddle.net/mvirik/9ear1n3o/17/

这似乎工作正常,但如果我添加"固定"类到第一个或最后一个项目,它都会崩溃。

任何帮助都会非常棒。谢谢!

1 个答案:

答案 0 :(得分:0)

这似乎可以解决问题:

 $(function() {
    $("#sortable").sortable({
        start: function () {
            $(this).find(".pinned").each(function () {
          $(this).data("fixedIndex", $(this).index());
            });
        },        
        change: function (event, ui) {
            $(this).find(".pinned").each(function () {
        if($(this).data("fixedIndex") != 0) {
            $(this).detach().insertAfter($("#sortable li:eq(" + ($(this).data("fixedIndex")-1) + ")"));
        } else {
            $(this).detach().insertBefore($("#sortable li:eq(" + ($(this).data("fixedIndex")) + ")"));
        }
            });
        }
    });
});

尝试54:https://jsfiddle.net/mvirik/9ear1n3o/54/:)

如果有人知道更好的方法,请随时发表评论。

编辑:尽管如此,我还希望能够移动红色项目。这仍然无法正常工作。