0

这段代码有一个错误

http://codepen.io/desandro/pen/cbhDG

docReady(function () {

    var slidesElem = document.querySelector('.slides');
    var slideSize = getSize(document.querySelector('.slide'));
    var pckry = new Packery(slidesElem, {
        rowHeight: slideSize.outerHeight
    });
    // get item elements
    var itemElems = pckry.getItemElements();
    // for each item...
    for (var i = 0, len = itemElems.length; i < len; i++) {
        var elem = itemElems[i];
        // make element draggable with Draggabilly
        var draggie = new Draggabilly(elem, {
            axis: 'y'
        });
        // bind Draggabilly events to Packery
        pckry.bindDraggabillyEvents(draggie);
    }

    // re-sort DOM after item is positioned
    pckry.on('dragItemPositioned', function (_pckry, draggedItem) {
        var index = pckry.items.indexOf(draggedItem);
        var nextItem = pckry.items[index + 1];
        slidesElem.insertBefore(draggedItem.element, nextItem.element);
    });

});

当我将“第一个”项目拖到“最后一个”时,DOM 不会改变并且控制台中会出现错误。

有任何想法吗?我真的很难找到错误。

我会感谢你所有的帮助

该示例使用:packery.metafizzy.codraggabilly.desandro.com

4

1 回答 1

0

您不需要更改索引,它应该只是

var nextItem = pckry.items[ index ];

draggedItem给出你放置它的位置的索引/下一个项目的位置的索引

于 2014-10-17T10:25:43.663 回答